ndi-cli 0.28.0__tar.gz → 0.28.1__tar.gz
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.
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/PKG-INFO +2 -2
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/README.md +1 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/pyproject.toml +1 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/pyproject.toml.orig +1 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/__init__.py +1 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_output.py +1 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_render.py +15 -1
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/LICENSE +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_cli.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_config.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_docops.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_entrypoint.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_jobs.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_local.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_login.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_sources.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_systemone.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_tools.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/_workspace.py +0 -0
- {ndi_cli-0.28.0 → ndi_cli-0.28.1}/src/ndi_cli/commands.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ndi-cli
|
|
3
|
-
Version: 0.28.
|
|
3
|
+
Version: 0.28.1
|
|
4
4
|
Summary: NDI platform CLI: document operations, jobs, workspaces, and the agent workspace tools
|
|
5
5
|
Keywords: ndi,cli,document-intelligence,coding-agents
|
|
6
6
|
Author: Nace AI
|
|
@@ -98,7 +98,7 @@ to **stderr**. `-o auto|md|json|payload|id` picks the shape. `--json` is an
|
|
|
98
98
|
alias for `-o json`.
|
|
99
99
|
|
|
100
100
|
The default (`auto`) prints the full JSON response. When that is over
|
|
101
|
-
`$NDI_OUTPUT_LIMIT` characters (default
|
|
101
|
+
`$NDI_OUTPUT_LIMIT` characters (default 400,000), the compact text rendering
|
|
102
102
|
prints instead and stderr carries `note: output shortened …` with the full
|
|
103
103
|
size. `--json` always prints it whole, and `--save` / `--out-dir` always write
|
|
104
104
|
it whole. Commands whose output is the content itself (`ws context`, parse
|
|
@@ -74,7 +74,7 @@ to **stderr**. `-o auto|md|json|payload|id` picks the shape. `--json` is an
|
|
|
74
74
|
alias for `-o json`.
|
|
75
75
|
|
|
76
76
|
The default (`auto`) prints the full JSON response. When that is over
|
|
77
|
-
`$NDI_OUTPUT_LIMIT` characters (default
|
|
77
|
+
`$NDI_OUTPUT_LIMIT` characters (default 400,000), the compact text rendering
|
|
78
78
|
prints instead and stderr carries `note: output shortened …` with the full
|
|
79
79
|
size. `--json` always prints it whole, and `--save` / `--out-dir` always write
|
|
80
80
|
it whole. Commands whose output is the content itself (`ws context`, parse
|
|
@@ -15,7 +15,7 @@ OUTPUT_CHOICES = ("auto", "md", "json", "payload", "id")
|
|
|
15
15
|
#: Default output is the full JSON response while it stays within this many
|
|
16
16
|
#: characters on stdout. Past it the compact text rendering stands in, so one
|
|
17
17
|
#: command cannot flood a reading agent's context; a stderr note says so.
|
|
18
|
-
FULL_OUTPUT_LIMIT =
|
|
18
|
+
FULL_OUTPUT_LIMIT = 400_000
|
|
19
19
|
OUTPUT_LIMIT_ENV = "NDI_OUTPUT_LIMIT"
|
|
20
20
|
|
|
21
21
|
|
|
@@ -324,6 +324,8 @@ def file_metadata(response: FileMetadataToolResponse) -> str:
|
|
|
324
324
|
lines.append(f"summary: {response.summary}")
|
|
325
325
|
if response.components:
|
|
326
326
|
lines.append(f"components ({len(response.components)}):")
|
|
327
|
+
# A document's long-table sections share one rows table: its schema and preamble print once.
|
|
328
|
+
shown_tables: set[str] = set()
|
|
327
329
|
for comp in response.components:
|
|
328
330
|
if comp.kind == "media":
|
|
329
331
|
seconds = comp.duration_ms / 1000
|
|
@@ -353,8 +355,20 @@ def file_metadata(response: FileMetadataToolResponse) -> str:
|
|
|
353
355
|
lines.append(f" [{comp.kind}] {name} — {tail}")
|
|
354
356
|
if comp.summary:
|
|
355
357
|
lines.append(f" {comp.summary}")
|
|
356
|
-
|
|
358
|
+
shared = comp.kind == "section" and comp.columns and any(col.name == "origin" for col in comp.columns)
|
|
359
|
+
shown = comp.table_name in shown_tables
|
|
360
|
+
if shared and not shown:
|
|
361
|
+
lines.append(
|
|
362
|
+
f" {comp.table_name}: one SQL table for every section that lists it; "
|
|
363
|
+
"a section's rows are the ones printed on its pages"
|
|
364
|
+
)
|
|
365
|
+
if comp.columns and not (shared and shown):
|
|
357
366
|
lines.extend(_column_lines(comp.columns, bool(comp.columns_truncated)))
|
|
367
|
+
if comp.table_preamble and not shown:
|
|
368
|
+
lines.append(" printed above its first table:")
|
|
369
|
+
lines.extend(f" {text}" for text in comp.table_preamble.splitlines())
|
|
370
|
+
if comp.table_name:
|
|
371
|
+
shown_tables.add(comp.table_name)
|
|
358
372
|
if comp.error:
|
|
359
373
|
lines.append(f" error: {comp.error}")
|
|
360
374
|
return "\n".join(lines)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|