@enterpriseai/cli 3.19.5 → 3.20.1
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/commands/content-understanding.d.ts +15 -0
- package/dist/commands/content-understanding.d.ts.map +1 -0
- package/dist/commands/content-understanding.js +277 -0
- package/dist/commands/content-understanding.js.map +1 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +129 -1
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/eai-managed-deploy-output.d.ts.map +1 -1
- package/dist/commands/eai-managed-deploy-output.js +12 -2
- package/dist/commands/eai-managed-deploy-output.js.map +1 -1
- package/dist/commands/eai-managed-source-authorize-commit.d.ts +28 -0
- package/dist/commands/eai-managed-source-authorize-commit.d.ts.map +1 -0
- package/dist/commands/eai-managed-source-authorize-commit.js +200 -0
- package/dist/commands/eai-managed-source-authorize-commit.js.map +1 -0
- package/dist/commands/eai-managed-source-move.d.ts.map +1 -1
- package/dist/commands/eai-managed-source-move.js +3 -0
- package/dist/commands/eai-managed-source-move.js.map +1 -1
- package/dist/commands/resources.d.ts.map +1 -1
- package/dist/commands/resources.js +6 -6
- package/dist/commands/resources.js.map +1 -1
- package/dist/commands/vertical.d.ts.map +1 -1
- package/dist/commands/vertical.js +16 -6
- package/dist/commands/vertical.js.map +1 -1
- package/dist/index.js +65 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-guide.d.ts.map +1 -1
- package/dist/lib/agent-guide.js +12 -1
- package/dist/lib/agent-guide.js.map +1 -1
- package/dist/lib/api.d.ts +46 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +85 -2
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/cli-qa-transport.d.ts +7 -0
- package/dist/lib/cli-qa-transport.d.ts.map +1 -0
- package/dist/lib/cli-qa-transport.js +18 -0
- package/dist/lib/cli-qa-transport.js.map +1 -0
- package/dist/lib/content-understanding-client.d.ts +64 -0
- package/dist/lib/content-understanding-client.d.ts.map +1 -0
- package/dist/lib/content-understanding-client.js +105 -0
- package/dist/lib/content-understanding-client.js.map +1 -0
- package/dist/lib/content-understanding-manifest.d.ts +39 -0
- package/dist/lib/content-understanding-manifest.d.ts.map +1 -0
- package/dist/lib/content-understanding-manifest.js +265 -0
- package/dist/lib/content-understanding-manifest.js.map +1 -0
- package/dist/lib/context.d.ts +3 -0
- package/dist/lib/context.d.ts.map +1 -1
- package/dist/lib/context.js +12 -2
- package/dist/lib/context.js.map +1 -1
- package/dist/lib/eai-managed-source-client-types.d.ts +37 -1
- package/dist/lib/eai-managed-source-client-types.d.ts.map +1 -1
- package/dist/lib/eai-managed-source-operation-client.d.ts +3 -0
- package/dist/lib/eai-managed-source-operation-client.d.ts.map +1 -1
- package/dist/lib/eai-managed-source-operation-client.js +56 -1
- package/dist/lib/eai-managed-source-operation-client.js.map +1 -1
- package/dist/lib/eai-managed-source-publication-client.d.ts.map +1 -1
- package/dist/lib/eai-managed-source-publication-client.js +1 -0
- package/dist/lib/eai-managed-source-publication-client.js.map +1 -1
- package/dist/lib/error-codes.d.ts +1 -1
- package/dist/lib/error-codes.d.ts.map +1 -1
- package/dist/lib/error-codes.js +6 -3
- package/dist/lib/error-codes.js.map +1 -1
- package/dist/lib/tenant-context.d.ts +7 -0
- package/dist/lib/tenant-context.d.ts.map +1 -1
- package/dist/lib/tenant-context.js +17 -4
- package/dist/lib/tenant-context.js.map +1 -1
- package/package.json +2 -2
- package/resources/content-understanding/contract-golden.json +444 -0
- package/resources/content-understanding/manifest.schema.json +551 -0
- package/resources/content-understanding/procurement-example.json +135 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
interface CuOptions {
|
|
3
|
+
file?: string;
|
|
4
|
+
tenantId?: string;
|
|
5
|
+
plan?: string;
|
|
6
|
+
operationId?: string;
|
|
7
|
+
format?: string;
|
|
8
|
+
wait?: boolean;
|
|
9
|
+
timeout?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Validate the caller's identity before index-level profile activation can exit. */
|
|
12
|
+
export declare function contentUnderstandingPreflightOperationId(options: CuOptions): string | undefined;
|
|
13
|
+
export declare const contentUnderstandingCommand: Command;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=content-understanding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-understanding.d.ts","sourceRoot":"","sources":["../../src/commands/content-understanding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAgB5C,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAwDD,qFAAqF;AACrF,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAG/F;AAuED,eAAO,MAAM,2BAA2B,SAoBtC,CAAC"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { Command, Option } from 'commander';
|
|
4
|
+
import { resolveCommandContext } from '../lib/context.js';
|
|
5
|
+
import { requireManagedPublicApiUrl } from '../lib/managed-public-api.js';
|
|
6
|
+
import { isRecord } from '../lib/utils.js';
|
|
7
|
+
import * as out from '../lib/output.js';
|
|
8
|
+
import { errorCatalog } from '../lib/error-codes.js';
|
|
9
|
+
import { CANONICAL_TENANT_ID, ContentUnderstandingError, parseContentUnderstandingManifest, } from '../lib/content-understanding-manifest.js';
|
|
10
|
+
import { parseContentUnderstandingCapabilities, parseContentUnderstandingOperation, parseContentUnderstandingPlan, readContentUnderstandingResponse, requireContentUnderstandingOperationId, requireWaitTimeout, requireContentUnderstandingManifestCapabilities, } from '../lib/content-understanding-client.js';
|
|
11
|
+
async function readLocalJson(path, code, label) {
|
|
12
|
+
let bytes;
|
|
13
|
+
try {
|
|
14
|
+
bytes = await readFile(path);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
throw new ContentUnderstandingError(code, `${label} file could not be read.`);
|
|
18
|
+
}
|
|
19
|
+
if (bytes.length > 1024 * 1024)
|
|
20
|
+
throw new ContentUnderstandingError(code, `${label} file exceeds the input size budget.`);
|
|
21
|
+
try {
|
|
22
|
+
// Preserve a BOM so JSON parsing retains the existing refusal, while fatal decoding
|
|
23
|
+
// prevents changing malformed input bytes before binding or submitting the plan.
|
|
24
|
+
return { bytes, value: JSON.parse(new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes)) };
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
throw new ContentUnderstandingError(code, `${label} file must contain valid UTF-8 JSON.`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function readManifest(path) {
|
|
31
|
+
if (!path)
|
|
32
|
+
throw new ContentUnderstandingError('CU_INVALID_MANIFEST', '--file is required.');
|
|
33
|
+
const { bytes, value } = await readLocalJson(path, 'CU_INVALID_MANIFEST', 'Manifest');
|
|
34
|
+
return { manifest: parseContentUnderstandingManifest(value), manifestSha256: createHash('sha256').update(bytes).digest('hex') };
|
|
35
|
+
}
|
|
36
|
+
function tenantId(options, manifest) {
|
|
37
|
+
if (typeof options.tenantId !== 'string' || !CANONICAL_TENANT_ID.test(options.tenantId) || options.tenantId === '00000000-0000-0000-0000-000000000000'
|
|
38
|
+
|| (manifest && manifest.tenantId !== options.tenantId)) {
|
|
39
|
+
throw new ContentUnderstandingError('CU_TENANT_MISMATCH', '--tenant-id must be a canonical workspace UUID matching the manifest.');
|
|
40
|
+
}
|
|
41
|
+
return options.tenantId;
|
|
42
|
+
}
|
|
43
|
+
async function contextFor(id) {
|
|
44
|
+
const context = await resolveCommandContext({ tenantId: id, interactive: false, forceRefresh: true,
|
|
45
|
+
validatePublicApiUrl: requireManagedPublicApiUrl, pinPublicApiUrl: true,
|
|
46
|
+
onError: (code, message) => { throw new ContentUnderstandingError(code, message ?? errorCatalog[code].message); } });
|
|
47
|
+
if (context.tenantId !== id)
|
|
48
|
+
throw new ContentUnderstandingError('CU_TENANT_MISMATCH', 'Resolved workspace differs from the requested workspace.');
|
|
49
|
+
return context;
|
|
50
|
+
}
|
|
51
|
+
function print(options, value) {
|
|
52
|
+
if (options.format === 'json')
|
|
53
|
+
out.json(value);
|
|
54
|
+
else if (!value.ok) {
|
|
55
|
+
out.error(('error' in value ? value.error?.message : undefined) || 'Content Understanding request failed.');
|
|
56
|
+
if ('error' in value && value.error?.operationId)
|
|
57
|
+
out.info(`Operation ID: ${value.error.operationId}`);
|
|
58
|
+
}
|
|
59
|
+
else if ('body' in value && isRecord(value.body)) {
|
|
60
|
+
const body = value.body;
|
|
61
|
+
if (body.$schema) {
|
|
62
|
+
process.stdout.write(JSON.stringify(body, null, 2) + '\n');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
out.success(typeof body.status === 'string' ? `Content Understanding ${body.status}${typeof body.operationId === 'string' ? ` (${body.operationId})` : ''}`
|
|
66
|
+
: 'ready' in body ? `Content Understanding ${body.ready === true ? 'ready' : 'not ready'}` : 'Content Understanding configuration valid');
|
|
67
|
+
}
|
|
68
|
+
else
|
|
69
|
+
out.success('Content Understanding configuration valid');
|
|
70
|
+
if (!value.ok)
|
|
71
|
+
process.exitCode = 1;
|
|
72
|
+
}
|
|
73
|
+
function failure(error) {
|
|
74
|
+
const known = error instanceof ContentUnderstandingError;
|
|
75
|
+
return { ok: false, ...(known && error.status ? { status: error.status } : {}),
|
|
76
|
+
error: { code: known ? error.code : 'CU_REQUEST_FAILED', message: error instanceof Error ? error.message : 'Content Understanding request failed.',
|
|
77
|
+
...(known && error.operationId ? { operationId: error.operationId } : {}) } };
|
|
78
|
+
}
|
|
79
|
+
/** Validate the caller's identity before index-level profile activation can exit. */
|
|
80
|
+
export function contentUnderstandingPreflightOperationId(options) {
|
|
81
|
+
try {
|
|
82
|
+
return options.operationId === undefined ? undefined : requireContentUnderstandingOperationId(options.operationId);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
print(options, failure(error));
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function action(handler, retainRequestedOperation = false) {
|
|
90
|
+
return async (options) => {
|
|
91
|
+
let requestedOperation;
|
|
92
|
+
try {
|
|
93
|
+
if (retainRequestedOperation && options.operationId !== undefined)
|
|
94
|
+
requestedOperation = requireContentUnderstandingOperationId(options.operationId);
|
|
95
|
+
print(options, await handler(options));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const result = failure(error);
|
|
99
|
+
// This is the valid identity supplied by the caller, not a server
|
|
100
|
+
// acknowledgment. Preflight failure never creates an operation receipt.
|
|
101
|
+
if (requestedOperation && result.error)
|
|
102
|
+
result.error.operationId = requestedOperation;
|
|
103
|
+
print(options, result);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async function capabilities(context, timeoutMs) {
|
|
108
|
+
return parseContentUnderstandingCapabilities(await readContentUnderstandingResponse(await context.client.getContentUnderstandingCapabilities(timeoutMs)), context.tenantId);
|
|
109
|
+
}
|
|
110
|
+
async function parsePlanFile(options, input) {
|
|
111
|
+
if (!options.plan)
|
|
112
|
+
throw new ContentUnderstandingError('CU_PLAN_MISMATCH', '--plan must name the unchanged saved JSON plan.');
|
|
113
|
+
const { value } = await readLocalJson(options.plan, 'CU_PLAN_MISMATCH', 'Plan');
|
|
114
|
+
if (!isRecord(value) || value.ok !== true || value.kind !== 'eai.content-understanding.plan' || value.schemaVersion !== 1 || !isRecord(value.binding)
|
|
115
|
+
|| value.binding.tenantId !== input.manifest.tenantId || value.binding.bundleKey !== input.manifest.bundleKey
|
|
116
|
+
|| value.binding.manifestSha256 !== input.manifestSha256 || typeof value.binding.publicApiUrl !== 'string') {
|
|
117
|
+
throw new ContentUnderstandingError('CU_PLAN_MISMATCH', 'Saved plan does not match the unchanged manifest file and workspace/bundle.');
|
|
118
|
+
}
|
|
119
|
+
const body = parseContentUnderstandingPlan(value.body, input.manifest.tenantId, input.manifest.bundleKey);
|
|
120
|
+
return { ok: true, kind: 'eai.content-understanding.plan', schemaVersion: 1,
|
|
121
|
+
binding: { tenantId: input.manifest.tenantId, bundleKey: input.manifest.bundleKey,
|
|
122
|
+
publicApiUrl: value.binding.publicApiUrl, manifestSha256: input.manifestSha256 }, body };
|
|
123
|
+
}
|
|
124
|
+
function operationReadError(error, operationId) {
|
|
125
|
+
return error instanceof ContentUnderstandingError
|
|
126
|
+
? new ContentUnderstandingError(error.code, error.message, operationId, error.status)
|
|
127
|
+
: new ContentUnderstandingError('CU_OPERATION_READ_FAILED', 'Reading this operation failed. Keep its ID and inspect the original operation before resuming.', operationId);
|
|
128
|
+
}
|
|
129
|
+
async function waitForOperation(context, initial, options, deadline, resume) {
|
|
130
|
+
let operation = initial;
|
|
131
|
+
try {
|
|
132
|
+
while (options.wait && ['pending', 'running'].includes(operation.status) && Date.now() < deadline) {
|
|
133
|
+
if (operation.nextAction === 'apply') {
|
|
134
|
+
if (!resume)
|
|
135
|
+
return { ok: false, body: operation, error: { code: 'CU_REQUIRES_APPLY',
|
|
136
|
+
message: 'Provider work is ready; resume apply with the unchanged manifest, saved plan and this operation ID to publish or activate. Status remains read-only.', operationId: operation.operationId } };
|
|
137
|
+
operation = await resume(initial.operationId, Math.max(1, deadline - Date.now()));
|
|
138
|
+
if (!['pending', 'running'].includes(operation.status))
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
await new Promise(resolve => setTimeout(resolve, Math.min(2000, Math.max(0, deadline - Date.now()))));
|
|
142
|
+
if (Date.now() >= deadline)
|
|
143
|
+
break;
|
|
144
|
+
operation = parseContentUnderstandingOperation(await readContentUnderstandingResponse(await context.client.getContentUnderstandingOperation(initial.operationId, Math.max(1, deadline - Date.now()))), context.tenantId, initial);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const retained = operationReadError(error, initial.operationId);
|
|
149
|
+
return { ...failure(retained), body: operation };
|
|
150
|
+
}
|
|
151
|
+
if (['failed', 'unknown', 'partial'].includes(operation.status))
|
|
152
|
+
return { ok: false, body: operation,
|
|
153
|
+
error: { code: `CU_OPERATION_${operation.status.toUpperCase()}`, message: `Content Understanding operation is ${operation.status}; retain its ID and inspect its steps before resuming.`, operationId: operation.operationId } };
|
|
154
|
+
if (operation.status === 'succeeded' && operation.currentReady !== true)
|
|
155
|
+
return { ok: false, body: operation,
|
|
156
|
+
error: { code: 'CU_CURRENT_READINESS_UNVERIFIED', message: 'Historical completion does not verify current workspace and provider readiness. Retain this operation ID and inspect current readback blockers before processing documents.', operationId: operation.operationId } };
|
|
157
|
+
if (options.wait && operation.status !== 'succeeded')
|
|
158
|
+
return { ok: false, body: operation,
|
|
159
|
+
error: { code: 'CU_OPERATION_PENDING', message: 'Wait deadline reached. Use status for this operation; no replacement operation was submitted.', operationId: operation.operationId } };
|
|
160
|
+
return { ok: true, status: operation.status === 'succeeded' ? 200 : 202, body: operation };
|
|
161
|
+
}
|
|
162
|
+
export const contentUnderstandingCommand = new Command('content-understanding')
|
|
163
|
+
.description('Validate, plan and materialize bounded document analyzers through the selected workspace PublicAPI')
|
|
164
|
+
.addHelpText('after', `
|
|
165
|
+
Harness workflow:
|
|
166
|
+
eai content-understanding schema --format json
|
|
167
|
+
eai content-understanding validate --file cu.json --format json
|
|
168
|
+
eai content-understanding capabilities --tenant-id <workspace-id> --format json
|
|
169
|
+
eai content-understanding plan --file cu.json --tenant-id <workspace-id> --format json > cu-plan.json
|
|
170
|
+
eai content-understanding apply --file cu.json --plan cu-plan.json --tenant-id <workspace-id> --format json
|
|
171
|
+
eai content-understanding status --operation-id <operation-id> --tenant-id <workspace-id> --format json
|
|
172
|
+
|
|
173
|
+
Your harness authors the manifest. The platform owns Azure credentials, approved models,
|
|
174
|
+
provider ownership and readiness. Typed mode must be enabled and qualified on that workspace.
|
|
175
|
+
Only document fields and flat classification are available. Graphs and segmentation are refused.
|
|
176
|
+
Formula, figure and output-format settings require features.advancedDocumentConfig exactly true.
|
|
177
|
+
Before planning, prepare the existing app/workflow binding and matching tenant-owned
|
|
178
|
+
classifier draft with the existing setup and eai classifier save commands.
|
|
179
|
+
Keep the original manifest and plan for deliberate recovery after an unknown acknowledgement.
|
|
180
|
+
Status only reads existing operations; acceptance and pending work are not completion.
|
|
181
|
+
Succeeded historical work requires currentReady exactly true before document processing.
|
|
182
|
+
`);
|
|
183
|
+
function outputOptions(command) {
|
|
184
|
+
return command.addOption(new Option('--format <format>', 'Output format').choices(['text', 'json']).default('text'));
|
|
185
|
+
}
|
|
186
|
+
function workspaceOptions(command) {
|
|
187
|
+
return outputOptions(command.requiredOption('--tenant-id <id>', 'Exact owning workspace UUID'));
|
|
188
|
+
}
|
|
189
|
+
function waitOptions(command) {
|
|
190
|
+
return command.option('--wait', command.name() === 'apply' ? 'Wait for this exact operation; resume acknowledged remaining steps when requested' : 'Poll this exact operation without any mutation', false)
|
|
191
|
+
.option('--timeout <seconds>', 'Wait deadline, 1 to 1800 seconds', '300');
|
|
192
|
+
}
|
|
193
|
+
outputOptions(contentUnderstandingCommand.command('schema').description('Print the local manifest JSON schema and semantic bounds'))
|
|
194
|
+
.action(action(async () => {
|
|
195
|
+
const schema = JSON.parse(await readFile(new URL('../../resources/content-understanding/manifest.schema.json', import.meta.url), 'utf8'));
|
|
196
|
+
return { ok: true, body: schema };
|
|
197
|
+
}));
|
|
198
|
+
outputOptions(contentUnderstandingCommand.command('validate').description('Validate the complete manifest locally with no authentication or network access')
|
|
199
|
+
.requiredOption('--file <path>', 'Declarative document configuration JSON'))
|
|
200
|
+
.action(action(async (options) => {
|
|
201
|
+
const input = await readManifest(options.file);
|
|
202
|
+
return { ok: true, body: { valid: true, kind: input.manifest.kind,
|
|
203
|
+
schemaVersion: input.manifest.schemaVersion, bundleKey: input.manifest.bundleKey, manifestSha256: input.manifestSha256,
|
|
204
|
+
documentTypes: input.manifest.documentTypes.map(doc => doc.code) } };
|
|
205
|
+
}));
|
|
206
|
+
workspaceOptions(contentUnderstandingCommand.command('capabilities').description('Read actual selected-workspace typed mode, prerequisites and readiness'))
|
|
207
|
+
.action(action(async (options) => ({ ok: true, body: await capabilities(await contextFor(tenantId(options))) })));
|
|
208
|
+
workspaceOptions(contentUnderstandingCommand.command('plan').description('Read prerequisites and return a scope-bound configuration plan; writes nothing')
|
|
209
|
+
.requiredOption('--file <path>', 'Declarative document configuration JSON'))
|
|
210
|
+
.action(action(async (options) => {
|
|
211
|
+
const input = await readManifest(options.file), context = await contextFor(tenantId(options, input.manifest));
|
|
212
|
+
const body = parseContentUnderstandingPlan(await readContentUnderstandingResponse(await context.client.planContentUnderstandingConfiguration(input.manifest)), context.tenantId, input.manifest.bundleKey);
|
|
213
|
+
return { ok: true, kind: 'eai.content-understanding.plan', schemaVersion: 1,
|
|
214
|
+
binding: { tenantId: context.tenantId, bundleKey: input.manifest.bundleKey,
|
|
215
|
+
publicApiUrl: context.publicApiUrl, manifestSha256: input.manifestSha256 }, body };
|
|
216
|
+
}));
|
|
217
|
+
waitOptions(workspaceOptions(contentUnderstandingCommand.command('apply').description('Apply or explicitly resume the unchanged saved plan after current capability checks')
|
|
218
|
+
.requiredOption('--file <path>', 'Original declarative document configuration JSON')
|
|
219
|
+
.requiredOption('--plan <path>', 'Original JSON output from the plan command')
|
|
220
|
+
.option('--operation-id <id>', 'Resume this exact acknowledged canonical operation UUID')))
|
|
221
|
+
.action(action(async (options) => {
|
|
222
|
+
const timeout = requireWaitTimeout(options.timeout), input = await readManifest(options.file), id = tenantId(options, input.manifest);
|
|
223
|
+
const plan = await parsePlanFile(options, input), requestedOperation = options.operationId === undefined ? undefined : requireContentUnderstandingOperationId(options.operationId);
|
|
224
|
+
if (plan.body.ready !== true || plan.body.blockers.length > 0)
|
|
225
|
+
throw new ContentUnderstandingError('CU_NOT_READY', 'Saved plan has unresolved prerequisites. Obtain a ready plan before applying.');
|
|
226
|
+
const context = await contextFor(id);
|
|
227
|
+
if (plan.binding.publicApiUrl !== context.publicApiUrl)
|
|
228
|
+
throw new ContentUnderstandingError('CU_PLAN_MISMATCH', 'Selected PublicAPI gateway differs from the saved plan.');
|
|
229
|
+
const available = await capabilities(context);
|
|
230
|
+
if (available.enabled !== true || available.ready !== true)
|
|
231
|
+
throw new ContentUnderstandingError('CU_NOT_READY', 'Typed configuration is not enabled and ready on this workspace.');
|
|
232
|
+
requireContentUnderstandingManifestCapabilities(input.manifest, available);
|
|
233
|
+
// The backend checks actual versions/model bindings, or recovers the original durable operation before checking changed activation state.
|
|
234
|
+
const deadline = Date.now() + timeout;
|
|
235
|
+
let raw;
|
|
236
|
+
try {
|
|
237
|
+
raw = await readContentUnderstandingResponse(await context.client.applyContentUnderstandingConfiguration(input.manifest, plan.body.planDigest, plan.body.expectedVersions, requestedOperation, Math.max(1, deadline - Date.now())));
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
if (error instanceof ContentUnderstandingError && error.status !== undefined)
|
|
241
|
+
throw requestedOperation ? operationReadError(error, requestedOperation) : error;
|
|
242
|
+
return { ok: false, binding: plan.binding, planDigest: plan.body.planDigest,
|
|
243
|
+
error: { code: 'CU_APPLY_ACK_UNKNOWN', message: 'Apply acknowledgement is unknown. Keep the original manifest and plan; deliberately rerun that original apply to recover its durable operation. Do not create a replacement plan.',
|
|
244
|
+
...(requestedOperation ? { operationId: requestedOperation } : {}) } };
|
|
245
|
+
}
|
|
246
|
+
const operation = parseContentUnderstandingOperation(raw, id, { operationId: requestedOperation, bundleKey: input.manifest.bundleKey,
|
|
247
|
+
definitionDigest: plan.body.definitionDigest });
|
|
248
|
+
return waitForOperation(context, operation, options, deadline, async (operationId, timeoutMs) => {
|
|
249
|
+
const current = await capabilities(context, timeoutMs);
|
|
250
|
+
if (current.enabled !== true || current.ready !== true)
|
|
251
|
+
throw new ContentUnderstandingError('CU_NOT_READY', 'Typed configuration is no longer enabled and ready; retain the existing operation.', operationId);
|
|
252
|
+
requireContentUnderstandingManifestCapabilities(input.manifest, current);
|
|
253
|
+
try {
|
|
254
|
+
return parseContentUnderstandingOperation(await readContentUnderstandingResponse(await context.client.applyContentUnderstandingConfiguration(input.manifest, plan.body.planDigest, plan.body.expectedVersions, operationId, Math.max(1, deadline - Date.now()))), id, { operationId, bundleKey: input.manifest.bundleKey, definitionDigest: plan.body.definitionDigest });
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
if (error instanceof ContentUnderstandingError && (error.status !== undefined || ['CU_OPERATION_MISMATCH', 'CU_OPERATION_INVALID'].includes(error.code)))
|
|
258
|
+
throw error;
|
|
259
|
+
throw new ContentUnderstandingError('CU_APPLY_ACK_UNKNOWN', 'Resume acknowledgement is unknown. Inspect this original operation before deliberately repeating the unchanged apply.', operationId);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}, true));
|
|
263
|
+
waitOptions(workspaceOptions(contentUnderstandingCommand.command('status').description('Read or wait for an existing operation; dispatches no provider mutation')
|
|
264
|
+
.requiredOption('--operation-id <id>', 'Exact acknowledged canonical operation UUID')))
|
|
265
|
+
.action(action(async (options) => {
|
|
266
|
+
const timeout = requireWaitTimeout(options.timeout), operationId = requireContentUnderstandingOperationId(options.operationId), context = await contextFor(tenantId(options));
|
|
267
|
+
const deadline = Date.now() + timeout;
|
|
268
|
+
let operation;
|
|
269
|
+
try {
|
|
270
|
+
operation = parseContentUnderstandingOperation(await readContentUnderstandingResponse(await context.client.getContentUnderstandingOperation(operationId, Math.max(1, deadline - Date.now()))), context.tenantId, { operationId });
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
throw operationReadError(error, operationId);
|
|
274
|
+
}
|
|
275
|
+
return waitForOperation(context, operation, options, deadline);
|
|
276
|
+
}, true));
|
|
277
|
+
//# sourceMappingURL=content-understanding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-understanding.js","sourceRoot":"","sources":["../../src/commands/content-understanding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAsD5C,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAK3E;AAED,eAAO,MAAM,WAAW,SAsBpB,CAAC"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* eai docs — document management (upload, classify, index).
|
|
3
3
|
*/
|
|
4
|
-
import { Command } from 'commander';
|
|
4
|
+
import { Command, Option } from 'commander';
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
7
|
import { parseApiError, validateDocumentUploadContext } from '../lib/api.js';
|
|
8
8
|
import { makeSpinner, resolveCommandContext } from '../lib/context.js';
|
|
9
9
|
import * as out from '../lib/output.js';
|
|
10
|
+
import { isRecord } from '../lib/utils.js';
|
|
11
|
+
import { ContentUnderstandingError } from '../lib/content-understanding-manifest.js';
|
|
12
|
+
import { readContentUnderstandingResponse, requireWaitTimeout } from '../lib/content-understanding-client.js';
|
|
10
13
|
function addUploadOptions(command) {
|
|
11
14
|
return command
|
|
12
15
|
.option('--tenant-id <id>', 'Use a specific workspace with the current user login')
|
|
@@ -35,6 +38,8 @@ Typical workflow:
|
|
|
35
38
|
1. Configure and publish the app's document schemas and workflow classifier
|
|
36
39
|
2. Run classify once to upload and queue analysis, or upload for full processing
|
|
37
40
|
3. Poll the returned job ID and read the saved results; acceptance is not completion
|
|
41
|
+
eai docs job <job-id> --tenant-id <workspace-id> --wait --format json
|
|
42
|
+
eai docs get <document-id> --job-id <job-id> --tenant-id <workspace-id> --format json
|
|
38
43
|
|
|
39
44
|
Standalone documents require a business document lifecycle enabled on the
|
|
40
45
|
app/workflow binding. PublicAPI checks readiness and permissions before writing.
|
|
@@ -44,6 +49,129 @@ Use docs commands when the file is the subject of document processing or AI
|
|
|
44
49
|
context. Use "eai resources file" when the file is an attachment to a typed
|
|
45
50
|
resource object.
|
|
46
51
|
`);
|
|
52
|
+
function readIdentifier(value, label) {
|
|
53
|
+
if (!value || value === '.' || value === '..' || value.trim() !== value || value.length > 256 || /[\uD800-\uDFFF]/u.test(value) || [...value].some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) {
|
|
54
|
+
throw new ContentUnderstandingError('DOC_IDENTIFIER_INVALID', `${label} must be a nonempty bounded identifier.`);
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
function readFailure(error) {
|
|
59
|
+
return { ok: false, ...(error instanceof ContentUnderstandingError && error.status ? { status: error.status } : {}),
|
|
60
|
+
error: { code: error instanceof ContentUnderstandingError ? error.code : 'DOC_REQUEST_FAILED',
|
|
61
|
+
message: error instanceof Error ? error.message : 'Document read failed.' } };
|
|
62
|
+
}
|
|
63
|
+
function printRead(options, result) {
|
|
64
|
+
if (options.format === 'json')
|
|
65
|
+
out.json(result);
|
|
66
|
+
else if (result.ok !== true)
|
|
67
|
+
out.error(isRecord(result.error) && typeof result.error.message === 'string' ? result.error.message : 'Document read failed.');
|
|
68
|
+
else if (isRecord(result.body))
|
|
69
|
+
out.info(`Document ${String(result.body.status || result.body.processingStatus || 'record retrieved')}`);
|
|
70
|
+
if (result.ok !== true)
|
|
71
|
+
process.exitCode = 1;
|
|
72
|
+
}
|
|
73
|
+
/** Return the exact observed spelling only when all supplied aliases agree. */
|
|
74
|
+
function aliasedIdentifier(value, camel, snake) {
|
|
75
|
+
const supplied = [camel, snake].filter(key => Object.hasOwn(value, key)).map(key => value[key]);
|
|
76
|
+
if (supplied.length === 0)
|
|
77
|
+
return undefined;
|
|
78
|
+
if (supplied.some(identifier => typeof identifier !== 'string' || identifier.length === 0)
|
|
79
|
+
|| supplied.some(identifier => identifier !== supplied[0]))
|
|
80
|
+
return null;
|
|
81
|
+
return supplied[0];
|
|
82
|
+
}
|
|
83
|
+
function parseJob(value, jobId, tenantId) {
|
|
84
|
+
const observedTenant = aliasedIdentifier(value, 'tenantId', 'tenant_id');
|
|
85
|
+
if (aliasedIdentifier(value, 'jobId', 'job_id') !== jobId || (observedTenant !== undefined && observedTenant !== tenantId) || typeof value.status !== 'string'
|
|
86
|
+
|| !['queued', 'processing', 'completed', 'completed_with_errors', 'failed'].includes(value.status)
|
|
87
|
+
|| !Array.isArray(value.documents) || value.documents.some(doc => !isRecord(doc) || typeof aliasedIdentifier(doc, 'documentId', 'document_id') !== 'string')) {
|
|
88
|
+
throw new ContentUnderstandingError('DOC_JOB_MISMATCH', 'Document job does not match the requested job and workspace.');
|
|
89
|
+
}
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
docsCommand.command('job <jobId>').description('Read an accepted document job; optionally wait without repeating upload')
|
|
93
|
+
.option('--tenant-id <id>', 'Exact owning workspace')
|
|
94
|
+
.option('--wait', 'Poll this exact job only', false)
|
|
95
|
+
.option('--timeout <seconds>', 'Wait deadline, 1 to 1800 seconds', '300')
|
|
96
|
+
.addOption(new Option('--format <format>', 'Output format').choices(['text', 'json']).default('text'))
|
|
97
|
+
.action(async (jobId, options) => {
|
|
98
|
+
try {
|
|
99
|
+
readIdentifier(jobId, 'Job ID');
|
|
100
|
+
const timeout = requireWaitTimeout(options.timeout);
|
|
101
|
+
const context = await resolveCommandContext({ tenantId: options.tenantId, interactive: false });
|
|
102
|
+
const path = `/v4/data/documents/jobs/${encodeURIComponent(jobId)}`, deadline = Date.now() + timeout;
|
|
103
|
+
let response = await context.client.getDocumentJob(jobId, Math.max(1, deadline - Date.now()));
|
|
104
|
+
let job = parseJob(await readContentUnderstandingResponse(response), jobId, context.tenantId);
|
|
105
|
+
const failedJob = () => ['failed', 'completed_with_errors'].includes(String(job.status))
|
|
106
|
+
|| job.documents.some(doc => ['storage', 'classification', 'rag']
|
|
107
|
+
.some(key => isRecord(doc[key]) && doc[key].status === 'failed'));
|
|
108
|
+
const pendingStages = () => {
|
|
109
|
+
const documents = job.documents;
|
|
110
|
+
return documents.length === 0 || documents.some(doc => ['storage', 'classification', 'rag'].some(key => {
|
|
111
|
+
if (!Object.hasOwn(doc, key))
|
|
112
|
+
return false;
|
|
113
|
+
const stage = doc[key];
|
|
114
|
+
return !isRecord(stage) || (stage.status !== 'completed' && stage.status !== 'skipped');
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
while (options.wait && !failedJob() && (job.status !== 'completed' || pendingStages()) && Date.now() < deadline) {
|
|
118
|
+
await new Promise(resolve => setTimeout(resolve, Math.min(2000, Math.max(0, deadline - Date.now()))));
|
|
119
|
+
if (Date.now() >= deadline)
|
|
120
|
+
break;
|
|
121
|
+
response = await context.client.getDocumentJob(jobId, Math.max(1, deadline - Date.now()));
|
|
122
|
+
job = parseJob(await readContentUnderstandingResponse(response), jobId, context.tenantId);
|
|
123
|
+
}
|
|
124
|
+
const failed = failedJob();
|
|
125
|
+
const pending = !failed && ((options.wait && job.status !== 'completed') || (job.status === 'completed' && pendingStages()));
|
|
126
|
+
printRead(options, { ok: !failed && !pending, status: response.status, request: { method: 'GET', path,
|
|
127
|
+
...context.client.getRequestScope() }, body: job,
|
|
128
|
+
...(failed || pending ? { error: { code: failed ? 'DOC_JOB_FAILED' : 'DOC_JOB_PENDING',
|
|
129
|
+
message: failed ? 'Document job failed or completed with errors; inspect its pipeline results.'
|
|
130
|
+
: options.wait ? 'Wait deadline reached. Poll this job again; do not re-upload.'
|
|
131
|
+
: 'Document job has incomplete pipeline results. Poll this job again; do not re-upload.', jobId } } : {}) });
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
printRead(options, { ...readFailure(error), jobId });
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
docsCommand.command('get <documentId>').description('Read the persisted document and analysis result through PublicAPI')
|
|
138
|
+
.option('--tenant-id <id>', 'Exact owning workspace')
|
|
139
|
+
.option('--job-id <id>', 'Original accepted job ID for the document')
|
|
140
|
+
.addOption(new Option('--storage-target <target>', 'Document storage target').choices(['resourceapi']).default('resourceapi'))
|
|
141
|
+
.addOption(new Option('--format <format>', 'Output format').choices(['text', 'json']).default('text'))
|
|
142
|
+
.action(async (documentId, options) => {
|
|
143
|
+
try {
|
|
144
|
+
readIdentifier(documentId, 'Document ID');
|
|
145
|
+
if (options.jobId !== undefined)
|
|
146
|
+
readIdentifier(options.jobId, 'Job ID');
|
|
147
|
+
const context = await resolveCommandContext({ tenantId: options.tenantId, interactive: false });
|
|
148
|
+
const params = new URLSearchParams({ storage_target: 'resourceapi', ...(options.jobId ? { job_id: options.jobId } : {}) });
|
|
149
|
+
const path = `/v4/data/documents/records/${encodeURIComponent(documentId)}?${params}`;
|
|
150
|
+
const response = await context.client.getDocumentRecord(documentId, options.jobId);
|
|
151
|
+
const body = await readContentUnderstandingResponse(response);
|
|
152
|
+
const observedTenant = aliasedIdentifier(body, 'tenantId', 'tenant_id'), observedJob = aliasedIdentifier(body, 'jobId', 'job_id');
|
|
153
|
+
const untrackedJob = !options.jobId && ['jobId', 'job_id'].every(key => body[key] === undefined || body[key] === null);
|
|
154
|
+
if (aliasedIdentifier(body, 'documentId', 'document_id') !== documentId || aliasedIdentifier(body, 'storageTarget', 'storage_target') !== 'resourceapi'
|
|
155
|
+
|| (observedTenant !== undefined && observedTenant !== context.tenantId)
|
|
156
|
+
|| (body.tenant !== undefined && body.tenant !== context.tenantId)
|
|
157
|
+
|| (observedJob === null && !untrackedJob) || (options.jobId && observedJob !== options.jobId)) {
|
|
158
|
+
throw new ContentUnderstandingError('DOC_RECORD_MISMATCH', 'Document result does not match the requested document, job and workspace.');
|
|
159
|
+
}
|
|
160
|
+
const processingStatuses = [body.processingStatus,
|
|
161
|
+
...(body.machineAnalysis !== undefined ? [isRecord(body.machineAnalysis) ? body.machineAnalysis.processingStatus : undefined] : [])];
|
|
162
|
+
const failed = processingStatuses.some(status => typeof status === 'string' && ['failed', 'completed_with_errors', 'partial_failure'].includes(status));
|
|
163
|
+
const pending = !failed && processingStatuses.some(status => status !== 'complete' && status !== 'completed');
|
|
164
|
+
printRead(options, { ok: !failed && !pending, status: response.status, request: { method: 'GET', path,
|
|
165
|
+
...context.client.getRequestScope() }, body,
|
|
166
|
+
...(failed || pending ? { error: { code: failed ? 'DOC_RECORD_FAILED' : 'DOC_RECORD_PENDING',
|
|
167
|
+
message: failed ? 'Persisted document processing failed; inspect its analysis results.'
|
|
168
|
+
: 'Persisted document processing is incomplete. Poll the original job and read this document again; do not re-upload.',
|
|
169
|
+
documentId, ...(options.jobId ? { jobId: options.jobId } : {}) } } : {}) });
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
printRead(options, { ...readFailure(error), documentId, ...(options.jobId ? { jobId: options.jobId } : {}) });
|
|
173
|
+
}
|
|
174
|
+
});
|
|
47
175
|
// ─── eai docs upload ─────────────────────────────────────────────────────
|
|
48
176
|
addUploadOptions(docsCommand
|
|
49
177
|
.command('upload <file>')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eai-managed-deploy-output.d.ts","sourceRoot":"","sources":["../../src/commands/eai-managed-deploy-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAY7C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA2BjE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,yBAAyB,GACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"eai-managed-deploy-output.d.ts","sourceRoot":"","sources":["../../src/commands/eai-managed-deploy-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAY7C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA2BjE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,yBAAyB,GACnC,IAAI,CAkDN;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,yBAAyB,EACtC,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -45,15 +45,20 @@ export function printManagedSourceOperation(format, operation) {
|
|
|
45
45
|
sourceMode: operation.sourceMode,
|
|
46
46
|
status: operation.status,
|
|
47
47
|
publicationStatus: operation.status,
|
|
48
|
+
error: operation.error,
|
|
48
49
|
classification,
|
|
49
50
|
templateCommitSha: operation.templateCommitSha,
|
|
50
51
|
bundleSha256: operation.bundleSha256,
|
|
51
52
|
configHash: operation.configHash,
|
|
52
53
|
sourceBinding: {
|
|
53
54
|
repository: `${operation.repository.owner}/${operation.repository.name}`,
|
|
54
|
-
commitSha: operation.review?.mergedSha,
|
|
55
|
+
commitSha: operation.sourceProvenance?.commitSha ?? operation.review?.mergedSha,
|
|
55
56
|
},
|
|
56
57
|
review: operation.review,
|
|
58
|
+
...(operation.sourceProvenance ? {
|
|
59
|
+
sourceProvenance: operation.sourceProvenance, customerAuthorization: operation.customerAuthorization,
|
|
60
|
+
githubApprovedReviewClaim: false,
|
|
61
|
+
} : {}),
|
|
57
62
|
deploymentId: operation.deployment?.requestId,
|
|
58
63
|
activeUrl: operation.deployment?.liveUrl,
|
|
59
64
|
runtimeIdentity: operation.deployment?.runtimeIdentity,
|
|
@@ -87,7 +92,7 @@ export async function printManagedSourceCompletion(client, scope, publication, w
|
|
|
87
92
|
const revision = isRecord(operation.sourceRevision)
|
|
88
93
|
? operation.sourceRevision
|
|
89
94
|
: undefined;
|
|
90
|
-
const mergedSha = publication.review?.mergedSha;
|
|
95
|
+
const mergedSha = publication.sourceProvenance?.commitSha ?? publication.review?.mergedSha;
|
|
91
96
|
const hasExactMergedSha = typeof mergedSha === "string" && /^[a-f0-9]{40}$/.test(mergedSha);
|
|
92
97
|
if (!hasExactMergedSha ||
|
|
93
98
|
operation.environment !== publication.environment ||
|
|
@@ -103,6 +108,11 @@ export async function printManagedSourceCompletion(client, scope, publication, w
|
|
|
103
108
|
publicationStatus: publication.status,
|
|
104
109
|
templateCommitSha: publication.templateCommitSha,
|
|
105
110
|
bundleSha256: publication.bundleSha256,
|
|
111
|
+
...(publication.sourceProvenance ? {
|
|
112
|
+
sourceProvenance: publication.sourceProvenance,
|
|
113
|
+
customerAuthorization: publication.customerAuthorization,
|
|
114
|
+
githubApprovedReviewClaim: false,
|
|
115
|
+
} : {}),
|
|
106
116
|
});
|
|
107
117
|
if (classifyManagedOperationStatus(operation) === "failed")
|
|
108
118
|
process.exitCode = 1;
|