MCPcopy Create free account
hub / github.com/EvoMap/evolver / runReuseCommand

Function runReuseCommand

src/gep/cliContracts.js:60–106  ·  view source on GitHub ↗
(args, deps)

Source from the content-addressed store, hash-verified

58]);
59
60async function runReuseCommand(args, deps) {
61 deps = deps || {};
62 const out = deps.out || process.stdout;
63 const parsed = parseReuseArgs(args || []);
64 const machineJson = parsed.jsonOut || out === process.stdout;
65 const write = (value, code) => writeJson(out, value, code, deps, machineJson);
66 if (!parsed.ok) return write(reuseFailure(parsed.reason, parsed.message), 1);
67 return withMachineJsonConsole(machineJson, deps, async () => {
68 try {
69 const asset = deps.fetchAssetById
70 ? await deps.fetchAssetById(parsed.assetId)
71 : await fetchAssetById(parsed.assetId, deps);
72 if (!asset) return write(reuseFailure('not_found', 'asset not found'), 1);
73 const cleaned = stripHubMetadata(asset);
74 const verifiedId = verifyReuseAssetId(cleaned, parsed.assetId);
75 if (!verifiedId.ok) {
76 return write(reuseFailure('internal_error', 'asset integrity verification failed'), 1);
77 }
78 if (!isReuseAssetStoreStable(cleaned)) {
79 return write(reuseFailure('internal_error', 'asset integrity verification failed'), 1);
80 }
81 const store = prepareReuseAssetStore(cleaned, deps);
82 const provenance = prepareHubProvenance(deps);
83 markHubProvenance(parsed.assetId, deps, provenance);
84 let storedId;
85 try {
86 storedId = storeReusedAsset(cleaned, deps, store);
87 if (storedId !== parsed.assetId) {
88 throw new ContractError('internal_error', 'asset integrity verification failed');
89 }
90 } catch (e) {
91 rollbackHubProvenance(provenance);
92 throw e;
93 }
94 return write({
95 ok: true,
96 contract: REUSE_CONTRACT,
97 status: 'ok',
98 asset_id: storedId,
99 action: 'reused',
100 }, 0);
101 } catch (e) {
102 const f = classifyError(e, 'reuse');
103 return write(reuseFailure(f.reason, f.message), 1);
104 }
105 });
106}
107
108async function runPublishCommand(args, deps) {
109 deps = deps || {};

Callers 2

mainFunction · 0.85

Calls 14

parseReuseArgsFunction · 0.85
reuseFailureFunction · 0.85
withMachineJsonConsoleFunction · 0.85
fetchAssetByIdFunction · 0.85
stripHubMetadataFunction · 0.85
verifyReuseAssetIdFunction · 0.85
isReuseAssetStoreStableFunction · 0.85
prepareReuseAssetStoreFunction · 0.85
prepareHubProvenanceFunction · 0.85
markHubProvenanceFunction · 0.85
storeReusedAssetFunction · 0.85
rollbackHubProvenanceFunction · 0.85

Tested by

no test coverage detected