superbee 0.4.4-pre.10 → 0.4.4-pre.11
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/superbee.mjs +129 -71
- package/package.json +1 -1
- package/references/hosted-checkout.md +9 -0
package/dist/superbee.mjs
CHANGED
|
@@ -44,7 +44,7 @@ var __toESM = (mod, isNodeMode, target3) => (target3 = mod != null ? __create(__
|
|
|
44
44
|
var define_SUPERBEE_BUILD_IDENTITY_default;
|
|
45
45
|
var init_define_SUPERBEE_BUILD_IDENTITY = __esm({
|
|
46
46
|
"<define:__SUPERBEE_BUILD_IDENTITY__>"() {
|
|
47
|
-
define_SUPERBEE_BUILD_IDENTITY_default = { schema: "superbee.build-identity.v1", package: { name: "superbee", version: "0.4.4-pre.
|
|
47
|
+
define_SUPERBEE_BUILD_IDENTITY_default = { schema: "superbee.build-identity.v1", package: { name: "superbee", version: "0.4.4-pre.11" }, source: { commit: "cef05a992af831496c63bfb020b73ccb5eba34b7", dirty: false }, artifact: { channel: "npm-package" }, compatibility_contracts: { skill: 1, hook: 1, mcp: 1 } };
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
|
|
@@ -28987,7 +28987,7 @@ var init_command_spec = __esm({
|
|
|
28987
28987
|
{
|
|
28988
28988
|
id: "pull",
|
|
28989
28989
|
leaves: [publicLeaf("pull", "pull", zero, 6, DIR_OUT_SURFACE)],
|
|
28990
|
-
usage: "pull --doc-key <key> --out (<path> | -) [--dir <path>] [--remote <url>]",
|
|
28990
|
+
usage: "pull --doc-key <key> --out (<path> | -) [--from-host] [--dir <path>] [--remote <url>]",
|
|
28991
28991
|
summary: "Pull a doc's canonical form or a blob's raw bytes out of the store (the reverse of promote)"
|
|
28992
28992
|
},
|
|
28993
28993
|
{
|
|
@@ -55949,6 +55949,9 @@ function wording(client, target3, resume2) {
|
|
|
55949
55949
|
const { prefix } = client;
|
|
55950
55950
|
const failure3 = (error51) => hostedFailure(error51, target3, resume2);
|
|
55951
55951
|
const readFailure2 = (error51, route, missing2) => {
|
|
55952
|
+
if (error51 instanceof HostedReadAdapterError && error51.code === "unsupported") {
|
|
55953
|
+
return new CliError("NOT_IMPLEMENTED", missing2.message, { details: { host: target3.origin, route, reason: "unsupported" }, help: missing2.help });
|
|
55954
|
+
}
|
|
55952
55955
|
if (isRouteNotServed(error51)) {
|
|
55953
55956
|
return new CliError("NOT_IMPLEMENTED", missing2.message, { details: { host: target3.origin, route: error51.route, status: 404 }, help: missing2.help });
|
|
55954
55957
|
}
|
|
@@ -55992,6 +55995,26 @@ function wording(client, target3, resume2) {
|
|
|
55992
55995
|
reader(bundleId2) {
|
|
55993
55996
|
return client.reader(bundleId2);
|
|
55994
55997
|
},
|
|
55998
|
+
async blobHead(bundleId2, key4, options) {
|
|
55999
|
+
try {
|
|
56000
|
+
return await client.blobHead(bundleId2, key4, options);
|
|
56001
|
+
} catch (error51) {
|
|
56002
|
+
throw readFailure2(error51, `${prefix}/blob-heads`, {
|
|
56003
|
+
message: `${target3.origin} does not serve blob reads yet`,
|
|
56004
|
+
help: "a later release of the host serves them"
|
|
56005
|
+
});
|
|
56006
|
+
}
|
|
56007
|
+
},
|
|
56008
|
+
async readBlob(bundleId2, key4, options) {
|
|
56009
|
+
try {
|
|
56010
|
+
return await client.readBlob(bundleId2, key4, options);
|
|
56011
|
+
} catch (error51) {
|
|
56012
|
+
throw readFailure2(error51, `${prefix}/blob-read`, {
|
|
56013
|
+
message: `${target3.origin} does not serve blob reads yet`,
|
|
56014
|
+
help: "a later release of the host serves them"
|
|
56015
|
+
});
|
|
56016
|
+
}
|
|
56017
|
+
},
|
|
55995
56018
|
within(slug) {
|
|
55996
56019
|
return wording(client.within(slug), target3, resume2);
|
|
55997
56020
|
},
|
|
@@ -56084,6 +56107,7 @@ var init_client2 = __esm({
|
|
|
56084
56107
|
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
56085
56108
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
56086
56109
|
init_hosted_client();
|
|
56110
|
+
init_hosted_transport();
|
|
56087
56111
|
init_errors6();
|
|
56088
56112
|
init_invocation();
|
|
56089
56113
|
init_command_text();
|
|
@@ -104914,6 +104938,26 @@ Options:
|
|
|
104914
104938
|
import { parseArgs as parseArgs16 } from "node:util";
|
|
104915
104939
|
import { promises as fs16 } from "node:fs";
|
|
104916
104940
|
import path53 from "node:path";
|
|
104941
|
+
import { homedir as homedir30 } from "node:os";
|
|
104942
|
+
async function pullHostedBlob(bundle, key4, out, json4, deps2) {
|
|
104943
|
+
const home2 = deps2.hosted?.auth?.home ?? homedir30();
|
|
104944
|
+
const binding2 = await bindingForPath(home2, await fs16.realpath(bundle.root));
|
|
104945
|
+
if (!binding2) throw new CliError("USAGE", "--from-host requires a bound hosted checkout", {
|
|
104946
|
+
help: "pass --dir with the original checkout folder; ordinary pull reads a local working copy"
|
|
104947
|
+
});
|
|
104948
|
+
const resume2 = commandFragment`${cliInvocation()} pull --doc-key ${commandToken(key4)} --out ${commandToken(out)} --from-host --dir ${commandToken(binding2.path)}${json4 ? commandFragment` --json` : commandFragment``}`;
|
|
104949
|
+
const { client } = await openCheckoutConnection(binding2, deps2.hosted, resume2, home2);
|
|
104950
|
+
const head2 = await client.blobHead(binding2.bundle_id, key4);
|
|
104951
|
+
if (!head2) throw new CliError("NOT_FOUND", `no hosted blob at key '${key4}'`);
|
|
104952
|
+
const result3 = await client.readBlob(binding2.bundle_id, key4, { pin: head2 });
|
|
104953
|
+
if (!result3) throw new CliError("CONFLICT", `hosted blob '${key4}' changed during readback`, {
|
|
104954
|
+
help: "retry the same pull to read a fresh version and content type"
|
|
104955
|
+
});
|
|
104956
|
+
return {
|
|
104957
|
+
bytes: result3.bytes,
|
|
104958
|
+
fields: { route: "blob", source: "hosted", content_type: result3.contentType, version: result3.version, size_bytes: result3.bytes.byteLength }
|
|
104959
|
+
};
|
|
104960
|
+
}
|
|
104917
104961
|
function isDocRouteKey2(key4) {
|
|
104918
104962
|
return key4.toLowerCase().endsWith(".md");
|
|
104919
104963
|
}
|
|
@@ -104979,6 +105023,7 @@ async function pull2(argv2, deps2 = {}) {
|
|
|
104979
105023
|
options: {
|
|
104980
105024
|
"doc-key": { type: "string" },
|
|
104981
105025
|
out: { type: "string" },
|
|
105026
|
+
"from-host": { type: "boolean" },
|
|
104982
105027
|
dir: { type: "string" },
|
|
104983
105028
|
remote: { type: "string" },
|
|
104984
105029
|
json: { type: "boolean" },
|
|
@@ -105005,12 +105050,15 @@ async function pull2(argv2, deps2 = {}) {
|
|
|
105005
105050
|
});
|
|
105006
105051
|
}
|
|
105007
105052
|
if (out !== "-") assertPathOutsidePrivateState(path53.resolve(out));
|
|
105053
|
+
if (values["from-host"] && (values.remote !== void 0 || isDocRouteKey2(key4))) {
|
|
105054
|
+
throw new CliError("USAGE", "--from-host reads blobs from a bound hosted checkout; it cannot be used with --remote or a .md key");
|
|
105055
|
+
}
|
|
105008
105056
|
const bundle = await openBundle(values.dir, await resolveRemoteFlag(values.remote, values.dir));
|
|
105009
105057
|
const mode = resolveMode(values);
|
|
105010
105058
|
const streamMode = out === "-";
|
|
105011
105059
|
const docRoute = isDocRouteKey2(key4);
|
|
105012
105060
|
const runToTarget = async () => {
|
|
105013
|
-
const result3 = docRoute ? await pullDoc(bundle, key4, values.remote) : await pullBlob(bundle, key4, values.remote);
|
|
105061
|
+
const result3 = values["from-host"] ? await pullHostedBlob(bundle, key4, out, !!values.json, deps2) : docRoute ? await pullDoc(bundle, key4, values.remote) : await pullBlob(bundle, key4, values.remote);
|
|
105014
105062
|
const receipt5 = { pull: "read", key: key4, ...result3.fields, out };
|
|
105015
105063
|
const version5 = result3.fields.version;
|
|
105016
105064
|
const fileHint = streamMode ? "<file>" : out;
|
|
@@ -105055,6 +105103,8 @@ var init_pull = __esm({
|
|
|
105055
105103
|
init_doc();
|
|
105056
105104
|
init_egress();
|
|
105057
105105
|
init_command_text();
|
|
105106
|
+
init_binding2();
|
|
105107
|
+
init_checkout_connection();
|
|
105058
105108
|
PULL_USAGE = `superbee pull \u2014 pull a doc or blob's bytes out of the store (the reverse of 'promote')
|
|
105059
105109
|
|
|
105060
105110
|
Usage:
|
|
@@ -105070,6 +105120,12 @@ Routes by the --doc-key's target (case-insensitive), symmetric with 'promote':
|
|
|
105070
105120
|
Any OTHER key is a BLOB: raw bytes, self-verified against the returned version (a real integrity
|
|
105071
105121
|
check \u2014 catches transport corruption over --remote too, not just a local tautology).
|
|
105072
105122
|
|
|
105123
|
+
In a hosted checkout, the default still reads the local working copy; its blob content_type is
|
|
105124
|
+
inferred from the filename. --from-host explicitly reads the bound host's current blob instead,
|
|
105125
|
+
using its stored content type and version together as the byte-read pin. It requires sign-in as
|
|
105126
|
+
the checkout's person and refuses a changed pin rather than mixing observations or falling back
|
|
105127
|
+
to local bytes. It does not sync, place host changes, or send edits; only --out is written.
|
|
105128
|
+
|
|
105073
105129
|
--out - streams raw bytes to stdout; the receipt goes to STDERR instead (the byte stream stays
|
|
105074
105130
|
pure), and any error also routes to stderr in that mode. --out <path> writes the file and prints the
|
|
105075
105131
|
receipt to stdout. A destination path landing INSIDE an open LOCAL bundle carries a loud 'warning'
|
|
@@ -105082,6 +105138,8 @@ Options:
|
|
|
105082
105138
|
--doc-key <key> Source key (required)
|
|
105083
105139
|
--out <path> Write bytes to this local path
|
|
105084
105140
|
--out - Stream raw bytes to stdout; receipt -> stderr
|
|
105141
|
+
--from-host Read a blob's verified bytes and stored MIME from a bound hosted checkout's
|
|
105142
|
+
host (not documents, a local/Git bundle, or --remote)
|
|
105085
105143
|
--dir <path> Bundle directory (default: discovered from the cwd)
|
|
105086
105144
|
--remote <url> Talk to a wire-protocol server instead of a local bundle (mutually
|
|
105087
105145
|
exclusive with --dir; remote access is always explicit)
|
|
@@ -105181,7 +105239,7 @@ Options:
|
|
|
105181
105239
|
});
|
|
105182
105240
|
|
|
105183
105241
|
// ../cli/src/commands/delete.ts
|
|
105184
|
-
import { homedir as
|
|
105242
|
+
import { homedir as homedir31 } from "node:os";
|
|
105185
105243
|
import { parseArgs as parseArgs18 } from "node:util";
|
|
105186
105244
|
function isDocRouteKey3(key4) {
|
|
105187
105245
|
return key4.toLowerCase().endsWith(".md");
|
|
@@ -105223,7 +105281,7 @@ async function deleteCommand(argv2, deps2 = {}) {
|
|
|
105223
105281
|
);
|
|
105224
105282
|
}
|
|
105225
105283
|
const remote = await resolveRemoteFlag(values.remote, values.dir);
|
|
105226
|
-
const home2 = deps2.hosted?.auth?.home ?? deps2.home ??
|
|
105284
|
+
const home2 = deps2.hosted?.auth?.home ?? deps2.home ?? homedir31(), cwd = deps2.cwd ?? deps2.hosted?.cwd ?? process.cwd();
|
|
105227
105285
|
if (deps2.home !== void 0 && deps2.hosted?.auth !== void 0 && deps2.home !== deps2.hosted.auth.home) throw new CliError("USAGE", "offline admission and hosted delivery must use the same private-state home");
|
|
105228
105286
|
if (!remote && !isDocRouteKey3(key4)) {
|
|
105229
105287
|
const pending = await admitOfflineBlob({ operation: "delete", key: key4, ...values.dir === void 0 ? {} : { dir: values.dir }, ...rawExpected === void 0 ? {} : { expectedVersion: rawExpected.trim() }, home: home2, cwd });
|
|
@@ -110003,7 +110061,7 @@ var init_local_operation_file = __esm({
|
|
|
110003
110061
|
});
|
|
110004
110062
|
|
|
110005
110063
|
// ../cli/src/operation-plugins.ts
|
|
110006
|
-
import { homedir as
|
|
110064
|
+
import { homedir as homedir32 } from "node:os";
|
|
110007
110065
|
import path56 from "node:path";
|
|
110008
110066
|
function refusal3(reason) {
|
|
110009
110067
|
return new CliError("USAGE", `Local operation registration refused (${reason}).`, { details: { reason }, help: "Register a reviewed self-contained local operation bundle, preview its digest, then explicitly accept that digest. Changed code requires registration and rebinding." });
|
|
@@ -110034,17 +110092,17 @@ function parse3(raw) {
|
|
|
110034
110092
|
if (total > DEFAULT_SITE_CAPABILITY_LIMITS.maxTotalDescriptorBytes) throw refusal3("operation_descriptor_limit");
|
|
110035
110093
|
return m;
|
|
110036
110094
|
}
|
|
110037
|
-
async function registerOperationPlugin(folder, accept, input =
|
|
110095
|
+
async function registerOperationPlugin(folder, accept, input = homedir32()) {
|
|
110038
110096
|
const result3 = await lifecycle3.register(folder, accept, input);
|
|
110039
110097
|
return { operation: "op register", ...receipt3(result3.snapshot), accepted: result3.accepted, ..."generation" in result3 ? { generation: result3.generation } : {} };
|
|
110040
110098
|
}
|
|
110041
|
-
async function listOperationPlugins(input =
|
|
110099
|
+
async function listOperationPlugins(input = homedir32()) {
|
|
110042
110100
|
return { operation: "op registered", plugins: (await lifecycle3.list(input)).map((s) => ({ ...receipt3(s), generation: s.pointer.generation })) };
|
|
110043
110101
|
}
|
|
110044
|
-
async function removeOperationPlugin(id, input =
|
|
110102
|
+
async function removeOperationPlugin(id, input = homedir32()) {
|
|
110045
110103
|
return { operation: "op unregister", plugin: id, removed: await lifecycle3.remove(id, input) };
|
|
110046
110104
|
}
|
|
110047
|
-
async function selectLocalOperation(id, input =
|
|
110105
|
+
async function selectLocalOperation(id, input = homedir32()) {
|
|
110048
110106
|
const s = await lifecycle3.select(id, input, (m, key4) => m.superbeeLocalOperations.operations.some((o) => o.id === key4));
|
|
110049
110107
|
if (!s) return void 0;
|
|
110050
110108
|
const d = s.manifest.superbeeLocalOperations, op2 = d.operations.find((o) => o.id === id);
|
|
@@ -110222,7 +110280,7 @@ var init_local_operation_child = __esm({
|
|
|
110222
110280
|
import { spawn as spawn5 } from "node:child_process";
|
|
110223
110281
|
import { createHash as createHash19, randomUUID as randomUUID7 } from "node:crypto";
|
|
110224
110282
|
import { lstat as lstat10, mkdir as mkdir4, realpath as realpath9, readdir as readdir7, writeFile as writeFile3 } from "node:fs/promises";
|
|
110225
|
-
import { homedir as
|
|
110283
|
+
import { homedir as homedir33 } from "node:os";
|
|
110226
110284
|
import path57 from "node:path";
|
|
110227
110285
|
async function localFileBytes(file2, maximum) {
|
|
110228
110286
|
try {
|
|
@@ -110239,10 +110297,10 @@ async function ordinaryDirectory(value, home2, bundle) {
|
|
|
110239
110297
|
if (!status2.isDirectory() || status2.isSymbolicLink() || canonical2 !== value || canonical2 === bundle || within(bundle, canonical2)) throw refuse2("ordinary_output_directory_required");
|
|
110240
110298
|
return canonical2;
|
|
110241
110299
|
}
|
|
110242
|
-
async function localBundle(dir, cwd = process.cwd(), home2 =
|
|
110300
|
+
async function localBundle(dir, cwd = process.cwd(), home2 = homedir33()) {
|
|
110243
110301
|
const target3 = await resolveLocalBundleTarget(dir, cwd);
|
|
110244
110302
|
assertBundleOutsidePrivateState(target3.canonicalRoot, home2);
|
|
110245
|
-
const facts = await bundleHomeAt(target3.canonicalRoot, { home: typeof home2 === "string" ? home2 :
|
|
110303
|
+
const facts = await bundleHomeAt(target3.canonicalRoot, { home: typeof home2 === "string" ? home2 : homedir33() });
|
|
110246
110304
|
if (facts.home === "hosted") throw refuse2("hosted_local_execution_not_supported");
|
|
110247
110305
|
if (process.platform !== "darwin" && process.platform !== "linux") throw refuse2("unsupported_supervision_platform");
|
|
110248
110306
|
return target3.canonicalRoot;
|
|
@@ -110307,7 +110365,7 @@ async function probeToolVersion(file2, versionFlag, versionChannel) {
|
|
|
110307
110365
|
child.once("exit", (code3) => void finish(code3 === 0 ? void 0 : "tool_probe_failed"));
|
|
110308
110366
|
});
|
|
110309
110367
|
}
|
|
110310
|
-
async function bindLocalOperation(operation, bundle, config2, accept, home2 =
|
|
110368
|
+
async function bindLocalOperation(operation, bundle, config2, accept, home2 = homedir33()) {
|
|
110311
110369
|
if (await localBundle(bundle, process.cwd(), home2) !== bundle) throw refuse2("canonical_bundle_required");
|
|
110312
110370
|
const selection = await selectLocalOperation(operation, home2);
|
|
110313
110371
|
if (!selection) throw refuse2("unknown_local_operation");
|
|
@@ -110433,7 +110491,7 @@ async function stopGroup(pid, grace) {
|
|
|
110433
110491
|
return false;
|
|
110434
110492
|
}
|
|
110435
110493
|
async function runLocalOperation(operation, bundle, bindingId, input, options = {}) {
|
|
110436
|
-
const home2 = options.home ??
|
|
110494
|
+
const home2 = options.home ?? homedir33();
|
|
110437
110495
|
if (options.exportOutput !== void 0 && (!record15(options.exportOutput) || typeof options.exportOutput.role !== "string" || !key3.test(options.exportOutput.role) || typeof options.exportOutput.path !== "string" || !options.exportOutput.path || options.exportOutput.path.includes("\0"))) throw refuse2("export_output_argument");
|
|
110438
110496
|
if (!/^[0-9a-f-]{36}$/.test(bindingId)) throw refuse2("binding_id");
|
|
110439
110497
|
const binding2 = JSON.parse(await readUserStateFile(home2, path57.join(canonicalUserStateDir(home2), "local-operation-bindings", `${bindingId}.json`), 65536));
|
|
@@ -110769,7 +110827,7 @@ var init_transport = __esm({
|
|
|
110769
110827
|
|
|
110770
110828
|
// ../cli/src/source-local/run.ts
|
|
110771
110829
|
import { realpath as realpath10 } from "node:fs/promises";
|
|
110772
|
-
import { homedir as
|
|
110830
|
+
import { homedir as homedir34 } from "node:os";
|
|
110773
110831
|
function publicSourceReason(reason) {
|
|
110774
110832
|
return reason === void 0 ? void 0 : typeof reason === "string" && PUBLIC_SOURCE_REASONS.has(reason) ? reason : "unclassified";
|
|
110775
110833
|
}
|
|
@@ -110777,7 +110835,7 @@ async function context(feedId, dir, stateInput) {
|
|
|
110777
110835
|
const bundle = await openBundle(dir);
|
|
110778
110836
|
const root = await realpath10(bundle.root);
|
|
110779
110837
|
assertPathOutsidePrivateState(root);
|
|
110780
|
-
if (await bindingForPath(
|
|
110838
|
+
if (await bindingForPath(homedir34(), root)) throw sourceRefusal("hosted_target_unsupported");
|
|
110781
110839
|
const [registry2, edition, feed] = await Promise.all([loadKinds(bundle), readBundleOkfVersion2(bundle), readDoc2(bundle, feedId)]);
|
|
110782
110840
|
if (feed.frontmatter.type !== "Source Feed" || typeof feed.frontmatter.connector !== "string") throw sourceRefusal("feed_invalid");
|
|
110783
110841
|
const parsed2 = parseConnectorDoc(await readDoc2(bundle, feed.frontmatter.connector), { kinds: registry2 });
|
|
@@ -110999,7 +111057,7 @@ var init_run = __esm({
|
|
|
110999
111057
|
|
|
111000
111058
|
// ../cli/src/source-local/snapshot.ts
|
|
111001
111059
|
import { realpath as realpath11 } from "node:fs/promises";
|
|
111002
|
-
import { homedir as
|
|
111060
|
+
import { homedir as homedir35 } from "node:os";
|
|
111003
111061
|
import { dirname as dirname5, resolve as resolve2 } from "node:path";
|
|
111004
111062
|
async function guardFile(file2, home2, root) {
|
|
111005
111063
|
const selected2 = resolve2(file2);
|
|
@@ -111031,7 +111089,7 @@ function safeError(error51) {
|
|
|
111031
111089
|
async function context2(feed, dir, home2) {
|
|
111032
111090
|
const bundle = await openBundle(dir), root = await realpath11(bundle.root);
|
|
111033
111091
|
assertPathOutsidePrivateState(root, home2);
|
|
111034
|
-
if (await bindingForPath(typeof home2 === "string" ? home2 :
|
|
111092
|
+
if (await bindingForPath(typeof home2 === "string" ? home2 : homedir35(), root)) throw sourceRefusal("hosted_target_unsupported");
|
|
111035
111093
|
const [registry2, edition, source2] = await Promise.all([loadKinds(bundle), readBundleOkfVersion2(bundle), readDocVersioned2(bundle, feed)]);
|
|
111036
111094
|
const okfVersion = edition === "0.2" ? "0.2" : "0.1";
|
|
111037
111095
|
const bound2 = bindSnapshotSource(source2.doc, registry2, { okfVersion });
|
|
@@ -111054,7 +111112,7 @@ function assertBinding(current, binding2) {
|
|
|
111054
111112
|
}
|
|
111055
111113
|
async function bindLocalSnapshot(feed, options, deps2 = {}) {
|
|
111056
111114
|
try {
|
|
111057
|
-
const home2 = deps2.stateInput ??
|
|
111115
|
+
const home2 = deps2.stateInput ?? homedir35(), c = await context2(feed, options.dir, home2);
|
|
111058
111116
|
const current = await readSourceEnvelope(sourceStateFile(c.root, feed), home2);
|
|
111059
111117
|
assertBinding(current, c.binding);
|
|
111060
111118
|
const preview4 = {
|
|
@@ -111125,7 +111183,7 @@ async function prepared(feed, options, home2) {
|
|
|
111125
111183
|
}
|
|
111126
111184
|
async function runLocalSnapshot(feed, options, deps2 = {}) {
|
|
111127
111185
|
try {
|
|
111128
|
-
const home2 = deps2.stateInput ??
|
|
111186
|
+
const home2 = deps2.stateInput ?? homedir35();
|
|
111129
111187
|
if (!options.accept) {
|
|
111130
111188
|
const p = await prepared(feed, options, home2);
|
|
111131
111189
|
return {
|
|
@@ -111225,7 +111283,7 @@ function selectionMap(value) {
|
|
|
111225
111283
|
}
|
|
111226
111284
|
async function checkLocalSnapshot(file2, options, deps2 = {}) {
|
|
111227
111285
|
try {
|
|
111228
|
-
const home2 = deps2.stateInput ??
|
|
111286
|
+
const home2 = deps2.stateInput ?? homedir35();
|
|
111229
111287
|
const snapshot3 = decodeSnapshot(await selectedBytes(file2, SNAPSHOT_MAX_BYTES, home2));
|
|
111230
111288
|
let raw;
|
|
111231
111289
|
try {
|
|
@@ -112173,7 +112231,7 @@ var init_status = __esm({
|
|
|
112173
112231
|
|
|
112174
112232
|
// ../cli/src/commands/status.ts
|
|
112175
112233
|
import { parseArgs as parseArgs29 } from "node:util";
|
|
112176
|
-
import { homedir as
|
|
112234
|
+
import { homedir as homedir36 } from "node:os";
|
|
112177
112235
|
import { realpath as realpath12 } from "node:fs/promises";
|
|
112178
112236
|
function cap3(rows, limit) {
|
|
112179
112237
|
const bounded2 = limit > 0 ? rows.slice(0, limit) : rows;
|
|
@@ -112358,7 +112416,7 @@ async function status(argv2, deps2 = {}) {
|
|
|
112358
112416
|
limit = Number(raw);
|
|
112359
112417
|
}
|
|
112360
112418
|
const remote = await resolveRemoteFlag(values.remote, values.dir);
|
|
112361
|
-
const home2 = deps2.home ??
|
|
112419
|
+
const home2 = deps2.home ?? homedir36();
|
|
112362
112420
|
const hosted = remote ? null : await hostedCheckoutAt(values.dir, home2).catch(() => null);
|
|
112363
112421
|
if (!remote && !hosted) await (deps2.autoPull ?? maybeAutoPull2)(values.dir);
|
|
112364
112422
|
const now = (deps2.now ?? (() => /* @__PURE__ */ new Date()))();
|
|
@@ -144602,10 +144660,10 @@ Use \`superbee mcp status --host <id>\` to verify it and restart the host after
|
|
|
144602
144660
|
});
|
|
144603
144661
|
|
|
144604
144662
|
// ../cli/src/hosted/served-bundle.ts
|
|
144605
|
-
import { homedir as
|
|
144663
|
+
import { homedir as homedir37 } from "node:os";
|
|
144606
144664
|
import path59 from "node:path";
|
|
144607
144665
|
async function servedBundle(bundle, options = {}) {
|
|
144608
|
-
const home2 = options.home ??
|
|
144666
|
+
const home2 = options.home ?? homedir37();
|
|
144609
144667
|
let root;
|
|
144610
144668
|
try {
|
|
144611
144669
|
root = (await resolveLocalBundleTarget(bundle.root)).canonicalRoot;
|
|
@@ -144783,7 +144841,7 @@ var init_served_bundle = __esm({
|
|
|
144783
144841
|
});
|
|
144784
144842
|
|
|
144785
144843
|
// ../cli/src/hosted/reachable.ts
|
|
144786
|
-
import { homedir as
|
|
144844
|
+
import { homedir as homedir38 } from "node:os";
|
|
144787
144845
|
async function hostedBundleRows(client, target3, home2) {
|
|
144788
144846
|
const listing = readBundleListing(await client.bundles());
|
|
144789
144847
|
const folders = await liveCheckoutFolders(home2, target3);
|
|
@@ -144832,7 +144890,7 @@ async function reachableHostedBundles(options) {
|
|
|
144832
144890
|
}
|
|
144833
144891
|
}
|
|
144834
144892
|
async function askHosts(options) {
|
|
144835
|
-
const home2 = options.auth?.home ?? options.home ??
|
|
144893
|
+
const home2 = options.auth?.home ?? options.home ?? homedir38();
|
|
144836
144894
|
const base = options.auth ?? defaultHostedAuthDeps(home2);
|
|
144837
144895
|
const live = [];
|
|
144838
144896
|
for (const target3 of await candidateHosts(home2)) {
|
|
@@ -144904,7 +144962,7 @@ var init_folder_answered = __esm({
|
|
|
144904
144962
|
});
|
|
144905
144963
|
|
|
144906
144964
|
// ../cli/src/mcp-workspace-resolver.ts
|
|
144907
|
-
import { homedir as
|
|
144965
|
+
import { homedir as homedir39 } from "node:os";
|
|
144908
144966
|
function createCatalogMcpWorkspaceResolver(options = {}) {
|
|
144909
144967
|
const listEntries = options.listEntries ?? listCatalogEntries;
|
|
144910
144968
|
const resolveEntry2 = options.resolveEntry ?? resolveCatalogEntry;
|
|
@@ -144913,7 +144971,7 @@ function createCatalogMcpWorkspaceResolver(options = {}) {
|
|
|
144913
144971
|
const deriveName = options.deriveName ?? deriveBundleDisplayName;
|
|
144914
144972
|
const reachable = options.reachable ?? (() => reachableHostedBundles({ budgetMs: MCP_HOSTED_BUDGET_MS, ...options.home !== void 0 ? { home: options.home } : {} }));
|
|
144915
144973
|
const now = options.now ?? Date.now;
|
|
144916
|
-
const home2 = options.hosted?.auth?.home ?? options.home ??
|
|
144974
|
+
const home2 = options.hosted?.auth?.home ?? options.home ?? homedir39();
|
|
144917
144975
|
const select = async (selector2, during) => {
|
|
144918
144976
|
const entry = await resolveEntry2(selector2, options.home);
|
|
144919
144977
|
const value = await during(entry.locator.path);
|
|
@@ -146490,7 +146548,7 @@ var init_host_command = __esm({
|
|
|
146490
146548
|
|
|
146491
146549
|
// ../cli/src/mcp-install-targets.ts
|
|
146492
146550
|
import { readFileSync as readFileSync12 } from "node:fs";
|
|
146493
|
-
import { homedir as
|
|
146551
|
+
import { homedir as homedir40 } from "node:os";
|
|
146494
146552
|
function resolveMcpInstallTarget(value) {
|
|
146495
146553
|
return TARGET_BY_NAME.get(value.trim().toLowerCase());
|
|
146496
146554
|
}
|
|
@@ -146706,7 +146764,7 @@ function selectMcpRegistration(entries) {
|
|
|
146706
146764
|
return entries.find((entry) => entry.name === CURRENT_MCP_REGISTRATION) ?? LEGACY_MCP_REGISTRATIONS.map((name) => entries.find((entry) => entry.name === name)).find(Boolean);
|
|
146707
146765
|
}
|
|
146708
146766
|
function environment(deps2) {
|
|
146709
|
-
return deps2.environment ?? { home:
|
|
146767
|
+
return deps2.environment ?? { home: homedir40(), env: process.env, platform: process.platform };
|
|
146710
146768
|
}
|
|
146711
146769
|
function inspectMcpHost(target3, deps2 = {}) {
|
|
146712
146770
|
const input = environment(deps2);
|
|
@@ -146862,7 +146920,7 @@ var init_mcp_install_targets = __esm({
|
|
|
146862
146920
|
// ../cli/src/mcp-registration.ts
|
|
146863
146921
|
import { execFileSync as execFileSync3 } from "node:child_process";
|
|
146864
146922
|
import { readFileSync as readFileSync13, realpathSync as realpathSync14 } from "node:fs";
|
|
146865
|
-
import { homedir as
|
|
146923
|
+
import { homedir as homedir41 } from "node:os";
|
|
146866
146924
|
function isRecord18(value) {
|
|
146867
146925
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
146868
146926
|
}
|
|
@@ -146870,7 +146928,7 @@ function own5(value, key4) {
|
|
|
146870
146928
|
return Object.prototype.hasOwnProperty.call(value, key4) ? value[key4] : void 0;
|
|
146871
146929
|
}
|
|
146872
146930
|
function defaultEnvironment() {
|
|
146873
|
-
return { home:
|
|
146931
|
+
return { home: homedir41(), env: process.env, platform: process.platform };
|
|
146874
146932
|
}
|
|
146875
146933
|
function isMissing(error51) {
|
|
146876
146934
|
return isRecord18(error51) && own5(error51, "code") === "ENOENT";
|
|
@@ -147881,7 +147939,7 @@ var init_skill_compatibility = __esm({
|
|
|
147881
147939
|
// ../cli/src/commands/skill.ts
|
|
147882
147940
|
import { createHash as createHash20 } from "node:crypto";
|
|
147883
147941
|
import { existsSync as existsSync12, lstatSync as lstatSync8, readFileSync as readFileSync14, readdirSync as readdirSync4, realpathSync as realpathSync15, renameSync as renameSync6, rmSync as rmSync5, rmdirSync as rmdirSync3 } from "node:fs";
|
|
147884
|
-
import { homedir as
|
|
147942
|
+
import { homedir as homedir42 } from "node:os";
|
|
147885
147943
|
import { dirname as dirname6, join as join17 } from "node:path";
|
|
147886
147944
|
import { parseArgs as parseArgs32 } from "node:util";
|
|
147887
147945
|
function listFilesRelative(dir, prefix = "") {
|
|
@@ -147947,7 +148005,7 @@ function skillTargetsForName(dirName, scope, deps2 = {}) {
|
|
|
147947
148005
|
opencode: paths.join(cwd, ".claude", "skills", dirName)
|
|
147948
148006
|
};
|
|
147949
148007
|
}
|
|
147950
|
-
const home2 = deps2.home ??
|
|
148008
|
+
const home2 = deps2.home ?? homedir42();
|
|
147951
148009
|
const env = deps2.env ?? process.env;
|
|
147952
148010
|
return {
|
|
147953
148011
|
claude: paths.join(resolveHostConfigRoot(HOST_CONFIG_ROOTS.claude, home2, env, platform), "skills", dirName),
|
|
@@ -149114,7 +149172,7 @@ import {
|
|
|
149114
149172
|
unlinkSync as unlinkSync3,
|
|
149115
149173
|
writeFileSync as writeFileSync5
|
|
149116
149174
|
} from "node:fs";
|
|
149117
|
-
import { homedir as
|
|
149175
|
+
import { homedir as homedir43 } from "node:os";
|
|
149118
149176
|
import { isAbsolute as isAbsolute3, join as join18 } from "node:path";
|
|
149119
149177
|
function asRecord(value) {
|
|
149120
149178
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
@@ -149645,7 +149703,7 @@ function transitionMatchingActiveToCooldown(home2, token, now) {
|
|
|
149645
149703
|
}
|
|
149646
149704
|
function runPassiveUpdateOrientation(deps2 = {}) {
|
|
149647
149705
|
if (currentDistribution()?.updatesEnabled === false) return void 0;
|
|
149648
|
-
const home2 = deps2.home ??
|
|
149706
|
+
const home2 = deps2.home ?? homedir43();
|
|
149649
149707
|
const runningVersion = deps2.runningVersion ?? staticBuildIdentity().package.version;
|
|
149650
149708
|
const now = deps2.now ?? (() => /* @__PURE__ */ new Date());
|
|
149651
149709
|
const initial = inspectUpdateCache({ home: home2, runningVersion, now: now() });
|
|
@@ -149700,7 +149758,7 @@ function runPassiveUpdateOrientation(deps2 = {}) {
|
|
|
149700
149758
|
async function runUpdateRefreshWorker(token, deps2 = {}) {
|
|
149701
149759
|
if (currentDistribution()?.updatesEnabled === false) return;
|
|
149702
149760
|
if (!isUpdateLeaseToken(token)) return;
|
|
149703
|
-
const home2 = deps2.home ??
|
|
149761
|
+
const home2 = deps2.home ?? homedir43();
|
|
149704
149762
|
const runningVersion = deps2.runningVersion ?? staticBuildIdentity().package.version;
|
|
149705
149763
|
const now = deps2.now ?? (() => /* @__PURE__ */ new Date());
|
|
149706
149764
|
if (!parseStrictSemver(runningVersion) || !activeLeaseAuthority(home2, token, now())) return;
|
|
@@ -150412,7 +150470,7 @@ ASLITE_NO_UPDATE_CHECK, NO_UPDATE_NOTIFIER, or CI.
|
|
|
150412
150470
|
|
|
150413
150471
|
// ../cli/src/commands/session-start.ts
|
|
150414
150472
|
import { realpath as realpath14 } from "node:fs/promises";
|
|
150415
|
-
import { homedir as
|
|
150473
|
+
import { homedir as homedir44 } from "node:os";
|
|
150416
150474
|
import { parseArgs as parseArgs34 } from "node:util";
|
|
150417
150475
|
import path61 from "node:path";
|
|
150418
150476
|
async function bundleFreshness(root, userHome, now, signIn, env) {
|
|
@@ -150432,7 +150490,7 @@ async function bundleFreshness(root, userHome, now, signIn, env) {
|
|
|
150432
150490
|
return { home: "local", freshness: "local only" };
|
|
150433
150491
|
}
|
|
150434
150492
|
async function otherCatalogBundles(currentRoot, options = {}) {
|
|
150435
|
-
const userHome = options.home ??
|
|
150493
|
+
const userHome = options.home ?? homedir44();
|
|
150436
150494
|
const now = options.now ?? /* @__PURE__ */ new Date();
|
|
150437
150495
|
const deadline = Date.now() + (options.deadlineMs ?? SESSION_START_PROBE_DEADLINE_MS);
|
|
150438
150496
|
const current = currentRoot === null ? null : await realpath14(currentRoot).catch(() => path61.resolve(currentRoot));
|
|
@@ -150473,7 +150531,7 @@ async function sessionBundleRoot(dir, known) {
|
|
|
150473
150531
|
}
|
|
150474
150532
|
}
|
|
150475
150533
|
async function hostedSessionStartPull(binding2, budgetMs, deps2 = {}) {
|
|
150476
|
-
const home2 = deps2.sync?.auth?.home ??
|
|
150534
|
+
const home2 = deps2.sync?.auth?.home ?? homedir44();
|
|
150477
150535
|
const state = await sessionPullState(binding2, budgetMs, home2, deps2);
|
|
150478
150536
|
const counts = typeof state === "object" ? state : {};
|
|
150479
150537
|
const pulledAt = (await readFreshness(home2, binding2.checkout_id).catch(() => null))?.pulled_at ?? null;
|
|
@@ -150942,12 +151000,12 @@ __export(bundle_retire_exports, {
|
|
|
150942
151000
|
bundleRetire: () => bundleRetire
|
|
150943
151001
|
});
|
|
150944
151002
|
import { randomUUID as randomUUID9 } from "node:crypto";
|
|
150945
|
-
import { homedir as
|
|
151003
|
+
import { homedir as homedir45 } from "node:os";
|
|
150946
151004
|
import { parseArgs as parseArgs35 } from "node:util";
|
|
150947
151005
|
async function bundleRetire(argv2, partial2 = {}) {
|
|
150948
151006
|
const deps2 = {
|
|
150949
151007
|
stdout: partial2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
150950
|
-
auth: partial2.auth ?? defaultHostedAuthDeps(
|
|
151008
|
+
auth: partial2.auth ?? defaultHostedAuthDeps(homedir45()),
|
|
150951
151009
|
...partial2.fetch ? { fetch: partial2.fetch } : {},
|
|
150952
151010
|
terminal: partial2.terminal ?? processTerminal()
|
|
150953
151011
|
};
|
|
@@ -151496,7 +151554,7 @@ var init_catalog_guard = __esm({
|
|
|
151496
151554
|
|
|
151497
151555
|
// ../cli/src/commands/catalog.ts
|
|
151498
151556
|
import { parseArgs as parseArgs38 } from "node:util";
|
|
151499
|
-
import { homedir as
|
|
151557
|
+
import { homedir as homedir46 } from "node:os";
|
|
151500
151558
|
function entryReceipt(entry) {
|
|
151501
151559
|
return {
|
|
151502
151560
|
schema_version: 1,
|
|
@@ -151531,7 +151589,7 @@ function requestsPathField(argv2) {
|
|
|
151531
151589
|
async function catalogInner(argv2, deps2) {
|
|
151532
151590
|
const stdout = deps2.stdout ?? ((s) => void process.stdout.write(s));
|
|
151533
151591
|
const cwd = deps2.cwd ?? (() => process.cwd());
|
|
151534
|
-
const home2 = deps2.home ??
|
|
151592
|
+
const home2 = deps2.home ?? homedir46;
|
|
151535
151593
|
const parsed2 = parseSelectorOrUsage(
|
|
151536
151594
|
() => parseArgs38({
|
|
151537
151595
|
args: argv2,
|
|
@@ -152115,11 +152173,11 @@ __export(view_content_exports, {
|
|
|
152115
152173
|
viewUpdate: () => viewUpdate
|
|
152116
152174
|
});
|
|
152117
152175
|
import { lstat as lstat11, realpath as realpath15, writeFile as writeFile4 } from "node:fs/promises";
|
|
152118
|
-
import { homedir as
|
|
152176
|
+
import { homedir as homedir47 } from "node:os";
|
|
152119
152177
|
import path63 from "node:path";
|
|
152120
152178
|
import { parseArgs as parseArgs41 } from "node:util";
|
|
152121
152179
|
function homeOf(deps2) {
|
|
152122
|
-
return deps2.hosted?.auth?.home ??
|
|
152180
|
+
return deps2.hosted?.auth?.home ?? homedir47();
|
|
152123
152181
|
}
|
|
152124
152182
|
async function locate(sub, rawId, dir, deps2) {
|
|
152125
152183
|
const target3 = await resolveLocalBundleTarget(dir, deps2.cwd ?? process.cwd());
|
|
@@ -153144,11 +153202,11 @@ var init_setup_plan = __esm({
|
|
|
153144
153202
|
});
|
|
153145
153203
|
|
|
153146
153204
|
// ../cli/src/commands/setup-hosted.ts
|
|
153147
|
-
import { homedir as
|
|
153205
|
+
import { homedir as homedir48 } from "node:os";
|
|
153148
153206
|
import { parseArgs as parseArgs43 } from "node:util";
|
|
153149
153207
|
async function setupHosted(argv2, partial2 = {}) {
|
|
153150
153208
|
const stdout = partial2.stdout ?? ((text7) => void process.stdout.write(text7));
|
|
153151
|
-
const auth = partial2.auth ?? defaultHostedAuthDeps(
|
|
153209
|
+
const auth = partial2.auth ?? defaultHostedAuthDeps(homedir48());
|
|
153152
153210
|
const { values } = parseLeafOrUsage(
|
|
153153
153211
|
() => parseArgs43({
|
|
153154
153212
|
args: argv2,
|
|
@@ -153292,7 +153350,7 @@ import {
|
|
|
153292
153350
|
stat as stat8,
|
|
153293
153351
|
unlink as unlink11
|
|
153294
153352
|
} from "node:fs/promises";
|
|
153295
|
-
import { homedir as
|
|
153353
|
+
import { homedir as homedir49 } from "node:os";
|
|
153296
153354
|
import { dirname as dirname7, join as join19 } from "node:path";
|
|
153297
153355
|
function errno3(error51) {
|
|
153298
153356
|
return error51?.code;
|
|
@@ -153412,7 +153470,7 @@ async function preflightLegacy(input) {
|
|
|
153412
153470
|
function blockedSource(error51) {
|
|
153413
153471
|
return error51 instanceof UnsafeMigrationSource ? { reason: `legacy operational state at ${error51.display} ${error51.detail}`, command: error51.command } : { reason: "legacy operational state is not safe to migrate automatically", command: "superbee setup" };
|
|
153414
153472
|
}
|
|
153415
|
-
async function inspectUserStateMigration(input =
|
|
153473
|
+
async function inspectUserStateMigration(input = homedir49()) {
|
|
153416
153474
|
if (staticBuildIdentity().package.name === LEGACY_BRIDGE_PACKAGE_NAME) {
|
|
153417
153475
|
return { state: "ready", reason: "the separately published Aslite bridge retains its legacy state root", records: 0 };
|
|
153418
153476
|
}
|
|
@@ -153591,7 +153649,7 @@ function receipt4(status2, changed, records) {
|
|
|
153591
153649
|
next: { command: "superbee setup" }
|
|
153592
153650
|
};
|
|
153593
153651
|
}
|
|
153594
|
-
async function migrateUserState(input =
|
|
153652
|
+
async function migrateUserState(input = homedir49(), hooks = {}) {
|
|
153595
153653
|
if (staticBuildIdentity().package.name === LEGACY_BRIDGE_PACKAGE_NAME) {
|
|
153596
153654
|
throw new CliError("NOT_IMPLEMENTED", "state migration is available only from the Superbee package", { help: "npm install -g superbee" });
|
|
153597
153655
|
}
|
|
@@ -153704,7 +153762,7 @@ var init_user_state_migration = __esm({
|
|
|
153704
153762
|
});
|
|
153705
153763
|
|
|
153706
153764
|
// ../cli/src/commands/setup.ts
|
|
153707
|
-
import { homedir as
|
|
153765
|
+
import { homedir as homedir50 } from "node:os";
|
|
153708
153766
|
import { parseArgs as parseArgs44 } from "node:util";
|
|
153709
153767
|
function setupHost(value) {
|
|
153710
153768
|
return MCP_INSTALL_TARGETS.find((target3) => target3.id === value)?.id;
|
|
@@ -153906,7 +153964,7 @@ async function setup(argv2, injected = {}) {
|
|
|
153906
153964
|
const deps2 = {
|
|
153907
153965
|
stdout,
|
|
153908
153966
|
cwd: injected.cwd ?? (() => process.cwd()),
|
|
153909
|
-
home: injected.home ??
|
|
153967
|
+
home: injected.home ?? homedir50,
|
|
153910
153968
|
inspectDistribution: injected.inspectDistribution ?? (() => resolvePersistentInstallAuthority()),
|
|
153911
153969
|
inspectSkill: injected.inspectSkill ?? ((selectedScope) => inspectSkillStatus(selectedScope)),
|
|
153912
153970
|
inspectHook: injected.inspectHook ?? ((selectedScope) => inspectHookStatus(selectedScope)),
|
|
@@ -154171,13 +154229,13 @@ var init_loopback = __esm({
|
|
|
154171
154229
|
});
|
|
154172
154230
|
|
|
154173
154231
|
// ../cli/src/commands/hosted-auth.ts
|
|
154174
|
-
import { homedir as
|
|
154232
|
+
import { homedir as homedir51 } from "node:os";
|
|
154175
154233
|
import { parseArgs as parseArgs45 } from "node:util";
|
|
154176
154234
|
function commandDeps(deps2) {
|
|
154177
154235
|
return {
|
|
154178
154236
|
stdout: deps2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
154179
154237
|
stderr: deps2.stderr ?? ((text7) => void process.stderr.write(text7)),
|
|
154180
|
-
auth: deps2.auth ?? defaultHostedAuthDeps(
|
|
154238
|
+
auth: deps2.auth ?? defaultHostedAuthDeps(homedir51())
|
|
154181
154239
|
};
|
|
154182
154240
|
}
|
|
154183
154241
|
function iso(ms) {
|
|
@@ -154787,14 +154845,14 @@ var init_node = __esm({
|
|
|
154787
154845
|
|
|
154788
154846
|
// ../cli/src/commands/export.ts
|
|
154789
154847
|
import { randomBytes as randomBytes11 } from "node:crypto";
|
|
154790
|
-
import { homedir as
|
|
154848
|
+
import { homedir as homedir52 } from "node:os";
|
|
154791
154849
|
import { link as link3, lstat as lstat13, mkdir as mkdir6, open as open4, readdir as readdir10, realpath as realpath16, rename as rename3, rm as rm2, unlink as unlink13 } from "node:fs/promises";
|
|
154792
154850
|
import path65 from "node:path";
|
|
154793
154851
|
import { parseArgs as parseArgs46 } from "node:util";
|
|
154794
154852
|
function exportDeps(partial2) {
|
|
154795
154853
|
return {
|
|
154796
154854
|
stdout: partial2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
154797
|
-
auth: partial2.auth ?? defaultHostedAuthDeps(
|
|
154855
|
+
auth: partial2.auth ?? defaultHostedAuthDeps(homedir52()),
|
|
154798
154856
|
cwd: partial2.cwd ?? process.cwd(),
|
|
154799
154857
|
...partial2.fetch ? { fetch: partial2.fetch } : {}
|
|
154800
154858
|
};
|
|
@@ -155951,14 +156009,14 @@ var init_checkout_adopt = __esm({
|
|
|
155951
156009
|
});
|
|
155952
156010
|
|
|
155953
156011
|
// ../cli/src/commands/checkout.ts
|
|
155954
|
-
import { homedir as
|
|
156012
|
+
import { homedir as homedir53 } from "node:os";
|
|
155955
156013
|
import { lstat as lstat15, mkdir as mkdir7, readFile as readFile5, readdir as readdir11, realpath as realpath18, rmdir as rmdir3, stat as stat9, unlink as unlink14 } from "node:fs/promises";
|
|
155956
156014
|
import path67 from "node:path";
|
|
155957
156015
|
import { parseArgs as parseArgs47 } from "node:util";
|
|
155958
156016
|
function checkoutDeps(partial2) {
|
|
155959
156017
|
return {
|
|
155960
156018
|
stdout: partial2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
155961
|
-
auth: partial2.auth ?? defaultHostedAuthDeps(
|
|
156019
|
+
auth: partial2.auth ?? defaultHostedAuthDeps(homedir53()),
|
|
155962
156020
|
cwd: partial2.cwd ?? process.cwd(),
|
|
155963
156021
|
...partial2.fetch ? { fetch: partial2.fetch } : {}
|
|
155964
156022
|
};
|
|
@@ -156668,7 +156726,7 @@ __export(op_local_exports, {
|
|
|
156668
156726
|
});
|
|
156669
156727
|
import { parseArgs as parseArgs48 } from "node:util";
|
|
156670
156728
|
import path68 from "node:path";
|
|
156671
|
-
import { homedir as
|
|
156729
|
+
import { homedir as homedir54 } from "node:os";
|
|
156672
156730
|
async function localOp(argv2, deps2) {
|
|
156673
156731
|
const sub = argv2[0];
|
|
156674
156732
|
if (!["register", "registered", "unregister", "bind", "list", "run"].includes(sub ?? "")) throw new CliError("USAGE", "Unknown local operation command.");
|
|
@@ -156693,7 +156751,7 @@ async function localOp(argv2, deps2) {
|
|
|
156693
156751
|
deps2.stdout(renderUsage(OP_USAGE));
|
|
156694
156752
|
return;
|
|
156695
156753
|
}
|
|
156696
|
-
const cwd = deps2.cwd ?? process.cwd(), home2 = deps2.hosted?.auth?.home ??
|
|
156754
|
+
const cwd = deps2.cwd ?? process.cwd(), home2 = deps2.hosted?.auth?.home ?? homedir54();
|
|
156697
156755
|
if (values.local !== true) throw new CliError("USAGE", "Local operation registration and binding require --local.");
|
|
156698
156756
|
if (!["register", "registered", "unregister", "list", "bind", "run"].includes(sub ?? "")) throw new CliError("USAGE", "Unknown local operation command.");
|
|
156699
156757
|
if (values.input !== void 0) throw new CliError("USAGE", "Local operations require --input-file.");
|
|
@@ -156761,7 +156819,7 @@ var init_op_local = __esm({
|
|
|
156761
156819
|
});
|
|
156762
156820
|
|
|
156763
156821
|
// ../cli/src/commands/op.ts
|
|
156764
|
-
import { homedir as
|
|
156822
|
+
import { homedir as homedir55 } from "node:os";
|
|
156765
156823
|
import path69 from "node:path";
|
|
156766
156824
|
import { parseArgs as parseArgs49 } from "node:util";
|
|
156767
156825
|
async function op(argv2, deps2 = {}) {
|
|
@@ -156782,7 +156840,7 @@ async function op(argv2, deps2 = {}) {
|
|
|
156782
156840
|
}
|
|
156783
156841
|
async function homeOf2(dir, deps2) {
|
|
156784
156842
|
const target3 = await resolveLocalBundleTarget(dir, deps2.cwd ?? process.cwd());
|
|
156785
|
-
const facts = await bundleHomeAt(target3.canonicalRoot, { home: deps2.hosted?.auth?.home ??
|
|
156843
|
+
const facts = await bundleHomeAt(target3.canonicalRoot, { home: deps2.hosted?.auth?.home ?? homedir55() });
|
|
156786
156844
|
return facts.home === "hosted" ? { home: "hosted", binding: facts.binding } : { home: facts.home };
|
|
156787
156845
|
}
|
|
156788
156846
|
function noHostOperations(home2) {
|
|
@@ -157083,7 +157141,7 @@ Options:
|
|
|
157083
157141
|
});
|
|
157084
157142
|
|
|
157085
157143
|
// ../cli/src/hosted/inbox-session.ts
|
|
157086
|
-
import { homedir as
|
|
157144
|
+
import { homedir as homedir56 } from "node:os";
|
|
157087
157145
|
function helpFor(command) {
|
|
157088
157146
|
return command === "notify" ? commandFragment`${cliInvocation()} notify --help` : commandFragment`${cliInvocation()} inbox --help`;
|
|
157089
157147
|
}
|
|
@@ -157095,7 +157153,7 @@ async function checkoutOf(scope, deps2) {
|
|
|
157095
157153
|
if (scope.dir === void 0 && error51 instanceof CliError && error51.code === "NOT_FOUND") return null;
|
|
157096
157154
|
throw error51;
|
|
157097
157155
|
}
|
|
157098
|
-
const facts = await bundleHomeAt(canonicalRoot, { home: deps2.hosted?.auth?.home ??
|
|
157156
|
+
const facts = await bundleHomeAt(canonicalRoot, { home: deps2.hosted?.auth?.home ?? homedir56() });
|
|
157099
157157
|
return facts.home === "hosted" ? facts.binding : null;
|
|
157100
157158
|
}
|
|
157101
157159
|
async function openInboxSession(command, scope, deps2, resumeFor, options = {}) {
|
|
@@ -158986,7 +159044,7 @@ var init_publish_staged = __esm({
|
|
|
158986
159044
|
// ../cli/src/commands/publish.ts
|
|
158987
159045
|
import { randomUUID as randomUUID10 } from "node:crypto";
|
|
158988
159046
|
import { lstat as lstat16, readFile as readFile6, realpath as realpath19, unlink as unlink15 } from "node:fs/promises";
|
|
158989
|
-
import { homedir as
|
|
159047
|
+
import { homedir as homedir57 } from "node:os";
|
|
158990
159048
|
import path72 from "node:path";
|
|
158991
159049
|
import { parseArgs as parseArgs53 } from "node:util";
|
|
158992
159050
|
function publishDeps(partial2) {
|
|
@@ -158994,7 +159052,7 @@ function publishDeps(partial2) {
|
|
|
158994
159052
|
stdout: partial2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
158995
159053
|
stderr: partial2.stderr ?? ((text7) => void process.stderr.write(text7)),
|
|
158996
159054
|
...partial2.sleep ? { sleep: partial2.sleep } : {},
|
|
158997
|
-
auth: partial2.auth ?? defaultHostedAuthDeps(
|
|
159055
|
+
auth: partial2.auth ?? defaultHostedAuthDeps(homedir57()),
|
|
158998
159056
|
cwd: partial2.cwd ?? process.cwd(),
|
|
158999
159057
|
...partial2.fetch ? { fetch: partial2.fetch } : {}
|
|
159000
159058
|
};
|
|
@@ -159632,12 +159690,12 @@ Examples:
|
|
|
159632
159690
|
});
|
|
159633
159691
|
|
|
159634
159692
|
// ../cli/src/commands/access.ts
|
|
159635
|
-
import { homedir as
|
|
159693
|
+
import { homedir as homedir58 } from "node:os";
|
|
159636
159694
|
import { parseArgs as parseArgs54 } from "node:util";
|
|
159637
159695
|
function accessDeps(partial2) {
|
|
159638
159696
|
return {
|
|
159639
159697
|
stdout: partial2.stdout ?? ((text7) => void process.stdout.write(text7)),
|
|
159640
|
-
auth: partial2.auth ?? defaultHostedAuthDeps(
|
|
159698
|
+
auth: partial2.auth ?? defaultHostedAuthDeps(homedir58()),
|
|
159641
159699
|
...partial2.fetch ? { fetch: partial2.fetch } : {}
|
|
159642
159700
|
};
|
|
159643
159701
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superbee",
|
|
3
|
-
"version": "0.4.4-pre.
|
|
3
|
+
"version": "0.4.4-pre.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent-facing Superbee CLI for reading and writing local OKF knowledge bundles: context notes, docs, cross-links, and live bundle Views.",
|
|
6
6
|
"keywords": [
|
|
@@ -370,6 +370,15 @@ superbee sync --resolve keep --doc index.md # the next sync sends yours over
|
|
|
370
370
|
|
|
371
371
|
## Ordinary files (SVGs, images, `data/*.json`)
|
|
372
372
|
|
|
373
|
+
`pull --doc-key <key> --out <path> --from-host --dir <checkout>` reads one blob's bytes and stored
|
|
374
|
+
content type directly from the bound host, using its version and content type together as the
|
|
375
|
+
read pin. It checks the checkout's signed-in person and workspace and verifies the returned bytes.
|
|
376
|
+
A changed pin, denied access or unsupported host refuses without falling back to local bytes.
|
|
377
|
+
It does not sync, send edits or refresh the working copy; only the requested output is written.
|
|
378
|
+
Use `--out -` for raw stdout with the receipt on stderr. Ordinary `pull` still reads the local
|
|
379
|
+
working copy, including unsent edits; its content type is inferred from the filename. The explicit
|
|
380
|
+
host option is for blobs only and cannot be combined with `--remote`.
|
|
381
|
+
|
|
373
382
|
Files other than `.md` documents are ordinary files. Sync sends and refreshes only **tracked**
|
|
374
383
|
ones. Treat an edit to a tracked file as a publish: the next `superbee sync` sends it to the hosted
|
|
375
384
|
bundle for everyone.
|