overlord-cli 4.15.0 → 4.16.0
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/bin/_cli/protocol.mjs +18 -17
- package/package.json +1 -1
package/bin/_cli/protocol.mjs
CHANGED
|
@@ -69,7 +69,7 @@ function resolveProtocolMetadata(flags = {}, base = {}) {
|
|
|
69
69
|
const metadata = { ...base };
|
|
70
70
|
|
|
71
71
|
if (flags['metadata-json']) {
|
|
72
|
-
const parsed =
|
|
72
|
+
const parsed = parseJsonFlag('--metadata-json', flags['metadata-json']);
|
|
73
73
|
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
74
74
|
throw new Error('--metadata-json must be a JSON object');
|
|
75
75
|
}
|
|
@@ -215,6 +215,15 @@ function requireFlag(flags, name, envAlias) {
|
|
|
215
215
|
return String(value);
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
+
function parseJsonFlag(flagName, rawValue) {
|
|
219
|
+
try {
|
|
220
|
+
return JSON.parse(String(rawValue));
|
|
221
|
+
} catch (err) {
|
|
222
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
223
|
+
throw new Error(`${flagName} must be valid JSON: ${detail}`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
218
227
|
function readTextFile(filePath, label) {
|
|
219
228
|
try {
|
|
220
229
|
return fs.readFileSync(filePath, 'utf8');
|
|
@@ -286,11 +295,7 @@ async function resolveChangeRationales(flags) {
|
|
|
286
295
|
);
|
|
287
296
|
}
|
|
288
297
|
if (flags['change-rationales-json']) {
|
|
289
|
-
|
|
290
|
-
return JSON.parse(String(flags['change-rationales-json']));
|
|
291
|
-
} catch {
|
|
292
|
-
throw new Error('--change-rationales-json must be valid JSON');
|
|
293
|
-
}
|
|
298
|
+
return parseJsonFlag('--change-rationales-json', flags['change-rationales-json']);
|
|
294
299
|
}
|
|
295
300
|
return [];
|
|
296
301
|
}
|
|
@@ -534,7 +539,7 @@ async function protocolUpdate(args) {
|
|
|
534
539
|
: {}),
|
|
535
540
|
...(flags.phase ? { phase: String(flags.phase) } : {}),
|
|
536
541
|
...(flags['event-type'] ? { eventType: String(flags['event-type']) } : {}),
|
|
537
|
-
...(flags['payload-json'] ? { payload:
|
|
542
|
+
...(flags['payload-json'] ? { payload: parseJsonFlag('--payload-json', flags['payload-json']) } : {}),
|
|
538
543
|
...(changeRationales.length > 0 ? { changeRationales } : {})
|
|
539
544
|
};
|
|
540
545
|
|
|
@@ -613,7 +618,7 @@ async function protocolAsk(args) {
|
|
|
613
618
|
ticketId,
|
|
614
619
|
question,
|
|
615
620
|
...(flags.phase ? { phase: String(flags.phase) } : {}),
|
|
616
|
-
...(flags['payload-json'] ? { payload:
|
|
621
|
+
...(flags['payload-json'] ? { payload: parseJsonFlag('--payload-json', flags['payload-json']) } : {})
|
|
617
622
|
};
|
|
618
623
|
|
|
619
624
|
const data = await apiPost(platformUrl, agentToken, localSecret, '/api/protocol/ask', body, timeoutMs);
|
|
@@ -750,11 +755,7 @@ async function protocolDeliver(args) {
|
|
|
750
755
|
if (flags['artifacts-file']) {
|
|
751
756
|
artifacts = await readJsonFileOrStdin(String(flags['artifacts-file']), '--artifacts-file');
|
|
752
757
|
} else if (flags['artifacts-json']) {
|
|
753
|
-
|
|
754
|
-
artifacts = JSON.parse(String(flags['artifacts-json']));
|
|
755
|
-
} catch {
|
|
756
|
-
throw new Error('--artifacts-json must be valid JSON');
|
|
757
|
-
}
|
|
758
|
+
artifacts = parseJsonFlag('--artifacts-json', flags['artifacts-json']);
|
|
758
759
|
}
|
|
759
760
|
|
|
760
761
|
if (deliverPayload && (flags['change-rationales-file'] || flags['change-rationales-json'])) {
|
|
@@ -805,7 +806,7 @@ async function protocolArtifactPrepareUpload(args) {
|
|
|
805
806
|
...(flags['artifact-type'] ? { artifactType: String(flags['artifact-type']) } : {}),
|
|
806
807
|
...(flags['content-type'] ? { contentType: String(flags['content-type']) } : {}),
|
|
807
808
|
...(flags['file-size'] ? { fileSize: parseInt(String(flags['file-size']), 10) } : {}),
|
|
808
|
-
...(flags['metadata-json'] ? { metadata:
|
|
809
|
+
...(flags['metadata-json'] ? { metadata: parseJsonFlag('--metadata-json', flags['metadata-json']) } : {})
|
|
809
810
|
};
|
|
810
811
|
|
|
811
812
|
const data = await apiPost(
|
|
@@ -838,7 +839,7 @@ async function protocolArtifactFinalizeUpload(args) {
|
|
|
838
839
|
...(flags['artifact-type'] ? { artifactType: String(flags['artifact-type']) } : {}),
|
|
839
840
|
...(flags['content-type'] ? { contentType: String(flags['content-type']) } : {}),
|
|
840
841
|
...(flags['file-size'] ? { fileSize: parseInt(String(flags['file-size']), 10) } : {}),
|
|
841
|
-
...(flags['metadata-json'] ? { metadata:
|
|
842
|
+
...(flags['metadata-json'] ? { metadata: parseJsonFlag('--metadata-json', flags['metadata-json']) } : {})
|
|
842
843
|
};
|
|
843
844
|
|
|
844
845
|
const data = await apiPost(
|
|
@@ -915,7 +916,7 @@ async function protocolArtifactUploadFile(args) {
|
|
|
915
916
|
artifactType: String(flags['artifact-type'] ?? 'document'),
|
|
916
917
|
contentType,
|
|
917
918
|
fileSize: fileStats.size,
|
|
918
|
-
...(flags['metadata-json'] ? { metadata:
|
|
919
|
+
...(flags['metadata-json'] ? { metadata: parseJsonFlag('--metadata-json', flags['metadata-json']) } : {})
|
|
919
920
|
},
|
|
920
921
|
timeoutMs
|
|
921
922
|
);
|
|
@@ -941,7 +942,7 @@ async function protocolArtifactUploadFile(args) {
|
|
|
941
942
|
artifactType: String(flags['artifact-type'] ?? 'document'),
|
|
942
943
|
contentType,
|
|
943
944
|
fileSize: fileStats.size,
|
|
944
|
-
...(flags['metadata-json'] ? { metadata:
|
|
945
|
+
...(flags['metadata-json'] ? { metadata: parseJsonFlag('--metadata-json', flags['metadata-json']) } : {})
|
|
945
946
|
},
|
|
946
947
|
timeoutMs
|
|
947
948
|
);
|