@ontologie/cli 0.1.0-preview.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/README.md +492 -0
- package/dist/cache/keys.d.ts +11 -0
- package/dist/cache/keys.d.ts.map +1 -0
- package/dist/cache/keys.js +14 -0
- package/dist/cache/keys.js.map +1 -0
- package/dist/cache/store.d.ts +23 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +160 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cli-compat.d.ts +6 -0
- package/dist/cli-compat.d.ts.map +1 -0
- package/dist/cli-compat.js +11 -0
- package/dist/cli-compat.js.map +1 -0
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +119 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +7 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +15 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/actions.d.ts +22 -0
- package/dist/commands/actions.d.ts.map +1 -0
- package/dist/commands/actions.js +211 -0
- package/dist/commands/actions.js.map +1 -0
- package/dist/commands/agent-files.d.ts +27 -0
- package/dist/commands/agent-files.d.ts.map +1 -0
- package/dist/commands/agent-files.js +167 -0
- package/dist/commands/agent-files.js.map +1 -0
- package/dist/commands/agent.d.ts +23 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +314 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/audit.d.ts +11 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +94 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/cache.d.ts +8 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +40 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/capabilities.d.ts +56 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +304 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/check.d.ts +7 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +16 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/config.d.ts +6 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +133 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/context.d.ts +6 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +226 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/dev.d.ts +15 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +62 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs-alias.d.ts +14 -0
- package/dist/commands/docs-alias.d.ts.map +1 -0
- package/dist/commands/docs-alias.js +28 -0
- package/dist/commands/docs-alias.js.map +1 -0
- package/dist/commands/docs.d.ts +6 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +67 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +161 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/generate.d.ts +7 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +36 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/graph.d.ts +9 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +149 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/import.d.ts +19 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +330 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/index.d.ts +80 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +345 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +101 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/instances.d.ts +7 -0
- package/dist/commands/instances.d.ts.map +1 -0
- package/dist/commands/instances.js +418 -0
- package/dist/commands/instances.js.map +1 -0
- package/dist/commands/keys.d.ts +6 -0
- package/dist/commands/keys.d.ts.map +1 -0
- package/dist/commands/keys.js +113 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/knowledge.d.ts +6 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +76 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/model.d.ts +3 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +40 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/nodes.d.ts +6 -0
- package/dist/commands/nodes.d.ts.map +1 -0
- package/dist/commands/nodes.js +111 -0
- package/dist/commands/nodes.js.map +1 -0
- package/dist/commands/openapi.d.ts +7 -0
- package/dist/commands/openapi.d.ts.map +1 -0
- package/dist/commands/openapi.js +17 -0
- package/dist/commands/openapi.js.map +1 -0
- package/dist/commands/plan.d.ts +19 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +563 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/process.d.ts +3 -0
- package/dist/commands/process.d.ts.map +1 -0
- package/dist/commands/process.js +67 -0
- package/dist/commands/process.js.map +1 -0
- package/dist/commands/query.d.ts +26 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +253 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/schema.d.ts +24 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +933 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/search.d.ts +10 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +74 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/shared.d.ts +32 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +63 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/usage.d.ts +6 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +86 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/validators.d.ts +30 -0
- package/dist/commands/validators.d.ts.map +1 -0
- package/dist/commands/validators.js +93 -0
- package/dist/commands/validators.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +48 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +47 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +127 -0
- package/dist/config.js.map +1 -0
- package/dist/credentials.d.ts +9 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +79 -0
- package/dist/credentials.js.map +1 -0
- package/dist/keychain.d.ts +9 -0
- package/dist/keychain.d.ts.map +1 -0
- package/dist/keychain.js +51 -0
- package/dist/keychain.js.map +1 -0
- package/dist/output/csv.d.ts +5 -0
- package/dist/output/csv.d.ts.map +1 -0
- package/dist/output/csv.js +22 -0
- package/dist/output/csv.js.map +1 -0
- package/dist/output/envelope.schema.d.ts +1053 -0
- package/dist/output/envelope.schema.d.ts.map +1 -0
- package/dist/output/envelope.schema.js +256 -0
- package/dist/output/envelope.schema.js.map +1 -0
- package/dist/output/errors.d.ts +58 -0
- package/dist/output/errors.d.ts.map +1 -0
- package/dist/output/errors.js +339 -0
- package/dist/output/errors.js.map +1 -0
- package/dist/output/formatter.d.ts +27 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +80 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/json.d.ts +41 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +215 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/markdown.d.ts +6 -0
- package/dist/output/markdown.d.ts.map +1 -0
- package/dist/output/markdown.js +51 -0
- package/dist/output/markdown.js.map +1 -0
- package/dist/output/meta.d.ts +49 -0
- package/dist/output/meta.d.ts.map +1 -0
- package/dist/output/meta.js +96 -0
- package/dist/output/meta.js.map +1 -0
- package/dist/output/plain.d.ts +6 -0
- package/dist/output/plain.d.ts.map +1 -0
- package/dist/output/plain.js +51 -0
- package/dist/output/plain.js.map +1 -0
- package/dist/output/table.d.ts +5 -0
- package/dist/output/table.d.ts.map +1 -0
- package/dist/output/table.js +54 -0
- package/dist/output/table.js.map +1 -0
- package/dist/output/types.d.ts +54 -0
- package/dist/output/types.d.ts.map +1 -0
- package/dist/output/types.js +80 -0
- package/dist/output/types.js.map +1 -0
- package/dist/output/warnings.d.ts +15 -0
- package/dist/output/warnings.d.ts.map +1 -0
- package/dist/output/warnings.js +46 -0
- package/dist/output/warnings.js.map +1 -0
- package/dist/output/yaml.d.ts +6 -0
- package/dist/output/yaml.d.ts.map +1 -0
- package/dist/output/yaml.js +9 -0
- package/dist/output/yaml.js.map +1 -0
- package/dist/schema/breaking-changes.d.ts +17 -0
- package/dist/schema/breaking-changes.d.ts.map +1 -0
- package/dist/schema/breaking-changes.js +108 -0
- package/dist/schema/breaking-changes.js.map +1 -0
- package/dist/schema/helpers.d.ts +18 -0
- package/dist/schema/helpers.d.ts.map +1 -0
- package/dist/schema/helpers.js +48 -0
- package/dist/schema/helpers.js.map +1 -0
- package/dist/schema/load-schema-file.d.ts +13 -0
- package/dist/schema/load-schema-file.d.ts.map +1 -0
- package/dist/schema/load-schema-file.js +88 -0
- package/dist/schema/load-schema-file.js.map +1 -0
- package/dist/schema/lockfile.d.ts +6 -0
- package/dist/schema/lockfile.d.ts.map +1 -0
- package/dist/schema/lockfile.js +34 -0
- package/dist/schema/lockfile.js.map +1 -0
- package/dist/schema/manifest-client.d.ts +31 -0
- package/dist/schema/manifest-client.d.ts.map +1 -0
- package/dist/schema/manifest-client.js +282 -0
- package/dist/schema/manifest-client.js.map +1 -0
- package/dist/schema/output.d.ts +38 -0
- package/dist/schema/output.d.ts.map +1 -0
- package/dist/schema/output.js +95 -0
- package/dist/schema/output.js.map +1 -0
- package/dist/stdin.d.ts +8 -0
- package/dist/stdin.d.ts.map +1 -0
- package/dist/stdin.js +21 -0
- package/dist/stdin.js.map +1 -0
- package/dist/templates/basic.d.ts +6 -0
- package/dist/templates/basic.d.ts.map +1 -0
- package/dist/templates/basic.js +90 -0
- package/dist/templates/basic.js.map +1 -0
- package/dist/templates/contract-review.d.ts +9 -0
- package/dist/templates/contract-review.d.ts.map +1 -0
- package/dist/templates/contract-review.js +172 -0
- package/dist/templates/contract-review.js.map +1 -0
- package/dist/templates/customer-onboarding.d.ts +9 -0
- package/dist/templates/customer-onboarding.d.ts.map +1 -0
- package/dist/templates/customer-onboarding.js +176 -0
- package/dist/templates/customer-onboarding.js.map +1 -0
- package/dist/templates/index.d.ts +11 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +16 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/react-dashboard.d.ts +6 -0
- package/dist/templates/react-dashboard.d.ts.map +1 -0
- package/dist/templates/react-dashboard.js +146 -0
- package/dist/templates/react-dashboard.js.map +1 -0
- package/dist/templates/vendor-risk.d.ts +9 -0
- package/dist/templates/vendor-risk.d.ts.map +1 -0
- package/dist/templates/vendor-risk.js +186 -0
- package/dist/templates/vendor-risk.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/output/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatter -- TTY detection + format dispatch
|
|
3
|
+
*
|
|
4
|
+
* Rule: stdout = data only, stderr = diagnostics/progress
|
|
5
|
+
*/
|
|
6
|
+
import type { OutputMeta } from './meta.js';
|
|
7
|
+
import type { CliMeta, CliPage } from './types.js';
|
|
8
|
+
export type OutputFormat = 'json' | 'table' | 'csv' | 'yaml' | 'markdown' | 'plain' | 'jsonl' | 'raw';
|
|
9
|
+
export interface FormatOptions {
|
|
10
|
+
format?: OutputFormat;
|
|
11
|
+
raw?: boolean;
|
|
12
|
+
quiet?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the effective output format.
|
|
16
|
+
* Default: table if TTY, json if piped.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveFormat(opts: FormatOptions): OutputFormat;
|
|
19
|
+
/**
|
|
20
|
+
* Format and write data to stdout.
|
|
21
|
+
*
|
|
22
|
+
* Accepts both legacy OutputMeta and new CliMeta:
|
|
23
|
+
* - OutputMeta: uses legacy `{ _meta, data }` envelope
|
|
24
|
+
* - CliMeta: uses new `{ ok, data, error, page, meta }` envelope
|
|
25
|
+
*/
|
|
26
|
+
export declare function output(data: unknown, meta: OutputMeta | CliMeta | undefined, opts: FormatOptions, columns?: string[], page?: CliPage | null): void;
|
|
27
|
+
//# sourceMappingURL=formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEtG,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAK/D;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,EACtC,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GACpB,IAAI,CAsCN"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatter -- TTY detection + format dispatch
|
|
3
|
+
*
|
|
4
|
+
* Rule: stdout = data only, stderr = diagnostics/progress
|
|
5
|
+
*/
|
|
6
|
+
import { outputJson, outputJsonl, buildSuccessEnvelope } from './json.js';
|
|
7
|
+
import { outputTable } from './table.js';
|
|
8
|
+
import { outputCsv } from './csv.js';
|
|
9
|
+
import { outputYaml } from './yaml.js';
|
|
10
|
+
import { outputPlain } from './markdown.js';
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the effective output format.
|
|
13
|
+
* Default: table if TTY, json if piped.
|
|
14
|
+
*/
|
|
15
|
+
export function resolveFormat(opts) {
|
|
16
|
+
if (opts.raw)
|
|
17
|
+
return 'raw';
|
|
18
|
+
if (opts.format === 'plain')
|
|
19
|
+
return 'markdown'; // compat alias
|
|
20
|
+
if (opts.format)
|
|
21
|
+
return opts.format;
|
|
22
|
+
return process.stdout.isTTY ? 'table' : 'json';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Format and write data to stdout.
|
|
26
|
+
*
|
|
27
|
+
* Accepts both legacy OutputMeta and new CliMeta:
|
|
28
|
+
* - OutputMeta: uses legacy `{ _meta, data }` envelope
|
|
29
|
+
* - CliMeta: uses new `{ ok, data, error, page, meta }` envelope
|
|
30
|
+
*/
|
|
31
|
+
export function output(data, meta, opts, columns, page) {
|
|
32
|
+
const fmt = resolveFormat(opts);
|
|
33
|
+
const effectiveMeta = (fmt === 'raw' || opts.raw) ? undefined : meta;
|
|
34
|
+
const rows = Array.isArray(data) ? data : [data];
|
|
35
|
+
switch (fmt) {
|
|
36
|
+
case 'json':
|
|
37
|
+
if (effectiveMeta && isCliMeta(effectiveMeta)) {
|
|
38
|
+
const envelope = buildSuccessEnvelope(data, effectiveMeta, page);
|
|
39
|
+
outputJson(envelope);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
outputJson(data, effectiveMeta);
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
case 'jsonl':
|
|
46
|
+
if (effectiveMeta && isCliMeta(effectiveMeta)) {
|
|
47
|
+
outputJsonl(rows, effectiveMeta);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
outputJsonl(rows, effectiveMeta);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
case 'table':
|
|
54
|
+
outputTable(rows, columns);
|
|
55
|
+
break;
|
|
56
|
+
case 'csv':
|
|
57
|
+
outputCsv(rows, columns);
|
|
58
|
+
break;
|
|
59
|
+
case 'yaml':
|
|
60
|
+
outputYaml(data, effectiveMeta);
|
|
61
|
+
break;
|
|
62
|
+
case 'markdown':
|
|
63
|
+
case 'plain':
|
|
64
|
+
outputPlain(data, effectiveMeta);
|
|
65
|
+
break;
|
|
66
|
+
case 'raw':
|
|
67
|
+
outputJson(data);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Type guard
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
function isCliMeta(v) {
|
|
75
|
+
return (typeof v === 'object' &&
|
|
76
|
+
v !== null &&
|
|
77
|
+
'schemaVersion' in v &&
|
|
78
|
+
v.schemaVersion === 'dataforge.cli.v1');
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC,CAAE,eAAe;IAChE,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CACpB,IAAa,EACb,IAAsC,EACtC,IAAmB,EACnB,OAAkB,EAClB,IAAqB;IAErB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBACjE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,EAAE,aAAuC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,EAAE,aAAuC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,WAAW,CAAC,IAAiC,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,KAAK;YACR,SAAS,CAAC,IAAiC,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,MAAM;YACT,UAAU,CAAC,IAAI,EAAE,aAAuC,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,WAAW,CAAC,IAAI,EAAE,aAAuC,CAAC,CAAC;YAC3D,MAAM;QACR,KAAK,KAAK;YACR,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;IACV,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,eAAe,IAAI,CAAC;QACnB,CAAa,CAAC,aAAa,KAAK,kBAAkB,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output — envelope to stdout
|
|
3
|
+
*
|
|
4
|
+
* Every `CliEnvelope` written by `outputJson()` / `outputJsonError()` is first
|
|
5
|
+
* validated against `EnvelopeSchema` (see `./envelope.schema.ts`). This locks
|
|
6
|
+
* the `dataforge.cli.v1` contract at runtime so it cannot drift silently as
|
|
7
|
+
* commands evolve. See `sdk/docs/cli-contract.md` for the canonical reference.
|
|
8
|
+
*
|
|
9
|
+
* Failure mode (loud errors > silent fallback):
|
|
10
|
+
* - `NODE_ENV !== 'production'` → throw `EnvelopeViolationError` immediately.
|
|
11
|
+
* - production → log to stderr and emit a synthesized `INTERNAL_ERROR`
|
|
12
|
+
* envelope so downstream consumers still receive a valid contract.
|
|
13
|
+
*/
|
|
14
|
+
import type { OutputMeta } from './meta.js';
|
|
15
|
+
import type { CliEnvelope, CliMeta, CliError, CliPage } from './types.js';
|
|
16
|
+
import { EnvelopeViolationError } from './envelope.schema.js';
|
|
17
|
+
/** @deprecated Internal — used for backward compat with OutputMeta callers */
|
|
18
|
+
export declare function outputJsonLegacy(data: unknown, meta?: OutputMeta): void;
|
|
19
|
+
export declare function outputJson(data: unknown, meta?: OutputMeta): void;
|
|
20
|
+
export declare function outputJson(envelope: CliEnvelope): void;
|
|
21
|
+
/**
|
|
22
|
+
* Build a success envelope from data + CliMeta + optional page.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildSuccessEnvelope<T>(data: T, meta: CliMeta, page?: CliPage | null): CliEnvelope<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Output a structured JSON error envelope.
|
|
27
|
+
*/
|
|
28
|
+
export declare function outputJsonError(error: CliError, meta: CliMeta): void;
|
|
29
|
+
/**
|
|
30
|
+
* Synthesize an `INTERNAL_ERROR` envelope when the original payload
|
|
31
|
+
* violates the contract. Exported so it can be unit-tested for self-validity
|
|
32
|
+
* (a synthesized envelope must itself pass `EnvelopeSchema`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function synthesizeInternalErrorEnvelope(originalMeta: CliMeta | undefined, cause: EnvelopeViolationError): CliEnvelope<never>;
|
|
35
|
+
export declare function outputJsonl(items: unknown[], meta?: OutputMeta): void;
|
|
36
|
+
export declare function outputJsonl(items: unknown[], cliMeta?: CliMeta): void;
|
|
37
|
+
/**
|
|
38
|
+
* Emit a JSONL error event.
|
|
39
|
+
*/
|
|
40
|
+
export declare function outputJsonlError(error: CliError): void;
|
|
41
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/output/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EAKR,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,sBAAsB,EAKvB,MAAM,sBAAsB,CAAC;AAO9B,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAGvE;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;AACnE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;AAYxD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAQrG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAUpE;AAyBD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,KAAK,EAAE,sBAAsB,GAC5B,WAAW,CAAC,KAAK,CAAC,CAuCpB;AAeD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;AAgCvE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAItD"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output — envelope to stdout
|
|
3
|
+
*
|
|
4
|
+
* Every `CliEnvelope` written by `outputJson()` / `outputJsonError()` is first
|
|
5
|
+
* validated against `EnvelopeSchema` (see `./envelope.schema.ts`). This locks
|
|
6
|
+
* the `dataforge.cli.v1` contract at runtime so it cannot drift silently as
|
|
7
|
+
* commands evolve. See `sdk/docs/cli-contract.md` for the canonical reference.
|
|
8
|
+
*
|
|
9
|
+
* Failure mode (loud errors > silent fallback):
|
|
10
|
+
* - `NODE_ENV !== 'production'` → throw `EnvelopeViolationError` immediately.
|
|
11
|
+
* - production → log to stderr and emit a synthesized `INTERNAL_ERROR`
|
|
12
|
+
* envelope so downstream consumers still receive a valid contract.
|
|
13
|
+
*/
|
|
14
|
+
import { CLI_META_SCHEMA_VERSION, generateRequestId } from './types.js';
|
|
15
|
+
import { tryAssertEnvelope, EnvelopeViolationError, JsonlStartedEventSchema, JsonlItemEventSchema, JsonlCompletedEventSchema, JsonlErrorEventSchema, } from './envelope.schema.js';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Legacy JSON output (used when commands still pass OutputMeta)
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
/** @deprecated Internal — used for backward compat with OutputMeta callers */
|
|
20
|
+
export function outputJsonLegacy(data, meta) {
|
|
21
|
+
const envelope = meta ? { _meta: meta, data } : data;
|
|
22
|
+
process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
|
|
23
|
+
}
|
|
24
|
+
export function outputJson(dataOrEnvelope, meta) {
|
|
25
|
+
if (isCliEnvelope(dataOrEnvelope)) {
|
|
26
|
+
const validated = guardEnvelope(dataOrEnvelope);
|
|
27
|
+
process.stdout.write(JSON.stringify(validated, null, 2) + '\n');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Legacy path — pre-`dataforge.cli.v1` envelope. Not validated.
|
|
31
|
+
const envelope = meta ? { _meta: meta, data: dataOrEnvelope } : dataOrEnvelope;
|
|
32
|
+
process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build a success envelope from data + CliMeta + optional page.
|
|
37
|
+
*/
|
|
38
|
+
export function buildSuccessEnvelope(data, meta, page) {
|
|
39
|
+
return {
|
|
40
|
+
ok: true,
|
|
41
|
+
data,
|
|
42
|
+
error: null,
|
|
43
|
+
page: page ?? null,
|
|
44
|
+
meta,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Output a structured JSON error envelope.
|
|
49
|
+
*/
|
|
50
|
+
export function outputJsonError(error, meta) {
|
|
51
|
+
const envelope = {
|
|
52
|
+
ok: false,
|
|
53
|
+
data: null,
|
|
54
|
+
error,
|
|
55
|
+
page: null,
|
|
56
|
+
meta,
|
|
57
|
+
};
|
|
58
|
+
const validated = guardEnvelope(envelope);
|
|
59
|
+
process.stdout.write(JSON.stringify(validated, null, 2) + '\n');
|
|
60
|
+
}
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Contract guard — runtime validation of dataforge.cli.v1 envelopes
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
/**
|
|
65
|
+
* Validate an envelope against `EnvelopeSchema`. Returns the envelope on
|
|
66
|
+
* success. On violation:
|
|
67
|
+
* - dev (`NODE_ENV !== 'production'`) → throw `EnvelopeViolationError`
|
|
68
|
+
* - prod → log warning to stderr and synthesize an `INTERNAL_ERROR` envelope
|
|
69
|
+
* so the consumer still receives a contract-conforming payload.
|
|
70
|
+
*/
|
|
71
|
+
function guardEnvelope(envelope) {
|
|
72
|
+
const result = tryAssertEnvelope(envelope);
|
|
73
|
+
if (result.ok)
|
|
74
|
+
return result.value;
|
|
75
|
+
const error = new EnvelopeViolationError(result.issues);
|
|
76
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
process.stderr.write(`[dataforge:cli] ${error.message}\n`);
|
|
80
|
+
return synthesizeInternalErrorEnvelope(envelope.meta, error);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Synthesize an `INTERNAL_ERROR` envelope when the original payload
|
|
84
|
+
* violates the contract. Exported so it can be unit-tested for self-validity
|
|
85
|
+
* (a synthesized envelope must itself pass `EnvelopeSchema`).
|
|
86
|
+
*/
|
|
87
|
+
export function synthesizeInternalErrorEnvelope(originalMeta, cause) {
|
|
88
|
+
// Reuse the original meta if it already conforms — the violation may live
|
|
89
|
+
// entirely in the data/error/page fields, in which case the meta is fine.
|
|
90
|
+
// Otherwise fall back to a fresh, contract-conforming default.
|
|
91
|
+
const fallbackMeta = {
|
|
92
|
+
schemaVersion: CLI_META_SCHEMA_VERSION,
|
|
93
|
+
command: 'unknown',
|
|
94
|
+
requestId: generateRequestId('local_req'),
|
|
95
|
+
workspaceId: null,
|
|
96
|
+
environment: null,
|
|
97
|
+
manifestVersion: null,
|
|
98
|
+
costUnits: 0,
|
|
99
|
+
estimatedCostUnits: null,
|
|
100
|
+
quotaRemaining: null,
|
|
101
|
+
rateLimitRemaining: null,
|
|
102
|
+
warnings: [],
|
|
103
|
+
};
|
|
104
|
+
const meta = originalMeta && tryAssertEnvelope({
|
|
105
|
+
ok: true,
|
|
106
|
+
data: {},
|
|
107
|
+
error: null,
|
|
108
|
+
page: null,
|
|
109
|
+
meta: originalMeta,
|
|
110
|
+
}).ok
|
|
111
|
+
? originalMeta
|
|
112
|
+
: fallbackMeta;
|
|
113
|
+
return {
|
|
114
|
+
ok: false,
|
|
115
|
+
data: null,
|
|
116
|
+
error: {
|
|
117
|
+
code: 'INTERNAL_ERROR',
|
|
118
|
+
message: 'CLI envelope contract violation (dataforge.cli.v1).',
|
|
119
|
+
details: { issues: cause.issues },
|
|
120
|
+
retryable: false,
|
|
121
|
+
correlationId: meta.requestId,
|
|
122
|
+
},
|
|
123
|
+
page: null,
|
|
124
|
+
meta,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// JSONL output — typed events
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
/**
|
|
131
|
+
* J1: Validate JSONL events against Zod schemas in dev mode only.
|
|
132
|
+
* In production (NODE_ENV === 'production') this is a no-op.
|
|
133
|
+
*/
|
|
134
|
+
function guardJsonlEvent(event, schema) {
|
|
135
|
+
if (process.env.NODE_ENV === 'production')
|
|
136
|
+
return;
|
|
137
|
+
schema.parse(event); // throws in dev
|
|
138
|
+
}
|
|
139
|
+
export function outputJsonl(items, metaArg) {
|
|
140
|
+
if (metaArg && isCliMeta(metaArg)) {
|
|
141
|
+
// New typed JSONL path
|
|
142
|
+
const started = { type: 'started', meta: metaArg, total: items.length };
|
|
143
|
+
guardJsonlEvent(started, JsonlStartedEventSchema);
|
|
144
|
+
process.stdout.write(JSON.stringify(started) + '\n');
|
|
145
|
+
for (const item of items) {
|
|
146
|
+
const event = { type: 'item', data: item };
|
|
147
|
+
guardJsonlEvent(event, JsonlItemEventSchema);
|
|
148
|
+
process.stdout.write(JSON.stringify(event) + '\n');
|
|
149
|
+
}
|
|
150
|
+
const completed = {
|
|
151
|
+
type: 'completed',
|
|
152
|
+
meta: metaArg,
|
|
153
|
+
summary: { count: items.length, costUnits: metaArg.costUnits },
|
|
154
|
+
};
|
|
155
|
+
guardJsonlEvent(completed, JsonlCompletedEventSchema);
|
|
156
|
+
process.stdout.write(JSON.stringify(completed) + '\n');
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Legacy path
|
|
160
|
+
if (metaArg) {
|
|
161
|
+
process.stdout.write(JSON.stringify({ _meta: metaArg }) + '\n');
|
|
162
|
+
}
|
|
163
|
+
for (const item of items) {
|
|
164
|
+
process.stdout.write(JSON.stringify(item) + '\n');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Emit a JSONL error event.
|
|
170
|
+
*/
|
|
171
|
+
export function outputJsonlError(error) {
|
|
172
|
+
const event = { type: 'error', error };
|
|
173
|
+
guardJsonlEvent(event, JsonlErrorEventSchema);
|
|
174
|
+
process.stdout.write(JSON.stringify(event) + '\n');
|
|
175
|
+
}
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
// Type guards
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
/**
|
|
180
|
+
* Tight opt-in: only routes payloads that explicitly declare the
|
|
181
|
+
* `dataforge.cli.v1` schema version. The looser previous form
|
|
182
|
+
* (`'ok' in v && 'meta' in v`) would route any object happening to have
|
|
183
|
+
* those keys through `guardEnvelope`, which:
|
|
184
|
+
* - in dev mode → throws `EnvelopeViolationError` for legacy callers
|
|
185
|
+
* - in production → silently emits a synthesized `INTERNAL_ERROR`
|
|
186
|
+
* Either is a regression risk for legacy code paths still using the
|
|
187
|
+
* pre-v1 `outputJson` form. Anchoring on the schema version literal makes
|
|
188
|
+
* the guard a *contract opt-in*: a legacy payload never matches.
|
|
189
|
+
*
|
|
190
|
+
* Locked at runtime by the `EnvelopeSchema` Zod check in
|
|
191
|
+
* `output/envelope.schema.ts` — anything that gets past `isCliEnvelope`
|
|
192
|
+
* MUST have `meta.schemaVersion === 'dataforge.cli.v1'`.
|
|
193
|
+
*
|
|
194
|
+
* Review feedback: PR #992 Major #2.
|
|
195
|
+
*/
|
|
196
|
+
function isCliEnvelope(v) {
|
|
197
|
+
if (typeof v !== 'object' || v === null)
|
|
198
|
+
return false;
|
|
199
|
+
if (!('ok' in v) || !('meta' in v))
|
|
200
|
+
return false;
|
|
201
|
+
if (typeof v.ok !== 'boolean')
|
|
202
|
+
return false;
|
|
203
|
+
const meta = v.meta;
|
|
204
|
+
if (typeof meta !== 'object' || meta === null)
|
|
205
|
+
return false;
|
|
206
|
+
return meta.schemaVersion === 'dataforge.cli.v1';
|
|
207
|
+
}
|
|
208
|
+
// Intentionally duplicated from formatter.ts — avoids circular import. Keep in sync.
|
|
209
|
+
function isCliMeta(v) {
|
|
210
|
+
return (typeof v === 'object' &&
|
|
211
|
+
v !== null &&
|
|
212
|
+
'schemaVersion' in v &&
|
|
213
|
+
v.schemaVersion === 'dataforge.cli.v1');
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/output/json.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/output/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAgBlE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown/plain text output -- agent-friendly structured text
|
|
3
|
+
*/
|
|
4
|
+
export function outputPlain(data, meta) {
|
|
5
|
+
if (Array.isArray(data)) {
|
|
6
|
+
for (const item of data) {
|
|
7
|
+
outputPlainItem(item);
|
|
8
|
+
process.stdout.write('\n');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else if (typeof data === 'object' && data !== null) {
|
|
12
|
+
outputPlainItem(data);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
process.stdout.write(String(data) + '\n');
|
|
16
|
+
}
|
|
17
|
+
if (meta) {
|
|
18
|
+
process.stdout.write(`---\n`);
|
|
19
|
+
process.stdout.write(`Source: ${meta.source} | ${meta.latency_ms}ms | ${meta.retrievedAt}\n`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function outputPlainItem(obj, indent = 0) {
|
|
23
|
+
const prefix = ' '.repeat(indent);
|
|
24
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
25
|
+
if (value === null || value === undefined)
|
|
26
|
+
continue;
|
|
27
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
28
|
+
process.stdout.write(`${prefix}${key}:\n`);
|
|
29
|
+
outputPlainItem(value, indent + 2);
|
|
30
|
+
}
|
|
31
|
+
else if (Array.isArray(value)) {
|
|
32
|
+
process.stdout.write(`${prefix}${key}: [${value.length} items]\n`);
|
|
33
|
+
for (const item of value.slice(0, 5)) {
|
|
34
|
+
if (typeof item === 'object' && item !== null) {
|
|
35
|
+
process.stdout.write(`${prefix} -\n`);
|
|
36
|
+
outputPlainItem(item, indent + 4);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
process.stdout.write(`${prefix} - ${String(item)}\n`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (value.length > 5) {
|
|
43
|
+
process.stdout.write(`${prefix} ... and ${value.length - 5} more\n`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
process.stdout.write(`${prefix}${key}: ${String(value)}\n`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/output/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,IAAiB;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACrD,eAAe,CAAC,IAA+B,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAA4B,EAAE,MAAM,GAAG,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC;YAC3C,eAAe,CAAC,KAAgC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;YACnE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;oBACvC,eAAe,CAAC,IAA+B,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,aAAa,KAAK,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _meta envelope builder for CLI output
|
|
3
|
+
*/
|
|
4
|
+
import type { CliEnvironment, CliMeta, CliWarning } from './types.js';
|
|
5
|
+
/** @deprecated Use CliMeta and buildCliMeta() instead */
|
|
6
|
+
export interface OutputMeta {
|
|
7
|
+
workspaceId: string;
|
|
8
|
+
spaceId?: string;
|
|
9
|
+
/** @deprecated Use spaceId */
|
|
10
|
+
espaceId?: string;
|
|
11
|
+
retrievedAt: string;
|
|
12
|
+
cached: boolean;
|
|
13
|
+
latency_ms: number;
|
|
14
|
+
source: string;
|
|
15
|
+
schemaVersion: string;
|
|
16
|
+
}
|
|
17
|
+
/** @deprecated Use buildCliMeta() instead */
|
|
18
|
+
export declare function buildMeta(opts: {
|
|
19
|
+
workspaceId: string;
|
|
20
|
+
espaceId?: string;
|
|
21
|
+
spaceId?: string;
|
|
22
|
+
cached?: boolean;
|
|
23
|
+
latency_ms: number;
|
|
24
|
+
source: string;
|
|
25
|
+
}): OutputMeta;
|
|
26
|
+
export interface BuildCliMetaOpts {
|
|
27
|
+
command: string;
|
|
28
|
+
workspaceId?: string | null;
|
|
29
|
+
apiUrl?: string | null;
|
|
30
|
+
manifestVersion?: string | null;
|
|
31
|
+
costUnits?: number;
|
|
32
|
+
estimatedCostUnits?: number | null;
|
|
33
|
+
quotaRemaining?: number | null;
|
|
34
|
+
rateLimitRemaining?: number | null;
|
|
35
|
+
requestId?: string;
|
|
36
|
+
warnings?: CliWarning[];
|
|
37
|
+
}
|
|
38
|
+
export declare function buildCliMeta(opts: BuildCliMetaOpts): CliMeta;
|
|
39
|
+
/** Returns the canonical CLI environment label, or null if unknown.
|
|
40
|
+
*
|
|
41
|
+
* DataForge URL convention:
|
|
42
|
+
* - dev-growthsystemes.com / api.dev-growthsystemes.com = staging
|
|
43
|
+
* - ontologie-growthsystemes.com / api.ontologie-growthsystemes.com = prod
|
|
44
|
+
* - localhost / 127.0.0.1 = local
|
|
45
|
+
* - explicit "staging" in URL = staging
|
|
46
|
+
*/
|
|
47
|
+
export declare function detectEnvironment(apiUrl: string | null): CliEnvironment | null;
|
|
48
|
+
export declare function extractMetaFromHeaders(headers: Record<string, string>): Partial<BuildCliMetaOpts>;
|
|
49
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/output/meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQtE,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,UAAU,CAYb;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAc5D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAO9E;AAYD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2BjG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _meta envelope builder for CLI output
|
|
3
|
+
*/
|
|
4
|
+
import { CLI_META_SCHEMA_VERSION, generateRequestId } from './types.js';
|
|
5
|
+
import { getWarnings } from './warnings.js';
|
|
6
|
+
/** @deprecated Use buildCliMeta() instead */
|
|
7
|
+
export function buildMeta(opts) {
|
|
8
|
+
const sid = opts.spaceId || opts.espaceId;
|
|
9
|
+
return {
|
|
10
|
+
workspaceId: opts.workspaceId,
|
|
11
|
+
spaceId: sid,
|
|
12
|
+
espaceId: sid, // backward compat
|
|
13
|
+
retrievedAt: new Date().toISOString(),
|
|
14
|
+
cached: opts.cached ?? false,
|
|
15
|
+
latency_ms: opts.latency_ms,
|
|
16
|
+
source: opts.source,
|
|
17
|
+
schemaVersion: '1.0',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function buildCliMeta(opts) {
|
|
21
|
+
return {
|
|
22
|
+
schemaVersion: CLI_META_SCHEMA_VERSION,
|
|
23
|
+
command: opts.command,
|
|
24
|
+
requestId: opts.requestId ?? generateRequestId(),
|
|
25
|
+
workspaceId: opts.workspaceId ?? null,
|
|
26
|
+
environment: detectEnvironment(opts.apiUrl ?? null),
|
|
27
|
+
manifestVersion: opts.manifestVersion ?? null,
|
|
28
|
+
costUnits: opts.costUnits ?? 0,
|
|
29
|
+
estimatedCostUnits: opts.estimatedCostUnits ?? null,
|
|
30
|
+
quotaRemaining: opts.quotaRemaining ?? null,
|
|
31
|
+
rateLimitRemaining: opts.rateLimitRemaining ?? null,
|
|
32
|
+
warnings: opts.warnings ?? getWarnings(),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Returns the canonical CLI environment label, or null if unknown.
|
|
36
|
+
*
|
|
37
|
+
* DataForge URL convention:
|
|
38
|
+
* - dev-growthsystemes.com / api.dev-growthsystemes.com = staging
|
|
39
|
+
* - ontologie-growthsystemes.com / api.ontologie-growthsystemes.com = prod
|
|
40
|
+
* - localhost / 127.0.0.1 = local
|
|
41
|
+
* - explicit "staging" in URL = staging
|
|
42
|
+
*/
|
|
43
|
+
export function detectEnvironment(apiUrl) {
|
|
44
|
+
if (!apiUrl)
|
|
45
|
+
return null;
|
|
46
|
+
if (/localhost|127\.0\.0\.1/i.test(apiUrl))
|
|
47
|
+
return 'local';
|
|
48
|
+
if (/api\.ontologie-/.test(apiUrl))
|
|
49
|
+
return 'prod';
|
|
50
|
+
if (/staging[-.]/.test(apiUrl))
|
|
51
|
+
return 'staging';
|
|
52
|
+
if (/dev[-.]/.test(apiUrl))
|
|
53
|
+
return 'staging';
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Response header extraction for meta dynamic fields
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
/** Parse a string as a non-negative integer, returning undefined on NaN/negative. */
|
|
60
|
+
function safeNonNegInt(v) {
|
|
61
|
+
const n = Number(v);
|
|
62
|
+
return Number.isFinite(n) && n >= 0 ? Math.floor(n) : undefined;
|
|
63
|
+
}
|
|
64
|
+
export function extractMetaFromHeaders(headers) {
|
|
65
|
+
// M1: Normalize header keys to lowercase (HTTP/2 lowercases, HTTP/1.1 may not)
|
|
66
|
+
const h = Object.fromEntries(Object.entries(headers).map(([k, v]) => [k.toLowerCase(), v]));
|
|
67
|
+
const result = {};
|
|
68
|
+
const reqId = h['x-request-id'] || h['x-correlation-id'];
|
|
69
|
+
if (reqId)
|
|
70
|
+
result.requestId = `req_${reqId.replace(/-/g, '')}`;
|
|
71
|
+
// M2: Guard against NaN from Number()
|
|
72
|
+
const costUnits = h['x-cost-units'];
|
|
73
|
+
if (costUnits) {
|
|
74
|
+
const parsed = safeNonNegInt(costUnits);
|
|
75
|
+
if (parsed !== undefined)
|
|
76
|
+
result.costUnits = parsed;
|
|
77
|
+
}
|
|
78
|
+
const quotaRemaining = h['x-quota-remaining'];
|
|
79
|
+
if (quotaRemaining) {
|
|
80
|
+
const parsed = safeNonNegInt(quotaRemaining);
|
|
81
|
+
if (parsed !== undefined)
|
|
82
|
+
result.quotaRemaining = parsed;
|
|
83
|
+
}
|
|
84
|
+
const rlRemaining = h['x-ratelimit-remaining'] || h['ratelimit-remaining'];
|
|
85
|
+
if (rlRemaining) {
|
|
86
|
+
const parsed = safeNonNegInt(rlRemaining);
|
|
87
|
+
if (parsed !== undefined)
|
|
88
|
+
result.rateLimitRemaining = parsed;
|
|
89
|
+
}
|
|
90
|
+
// M3: Extract manifestVersion from headers
|
|
91
|
+
const mv = h['x-manifest-version'];
|
|
92
|
+
if (mv)
|
|
93
|
+
result.manifestVersion = mv;
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/output/meta.ts"],"names":[],"mappings":"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"}
|