pando-ai 1.1.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pando-ai",
3
- "version": "1.1.9",
3
+ "version": "1.2.0",
4
4
  "description": "AI coding firewall for Codex and Claude Code",
5
5
  "bin": {
6
6
  "pando-ai": "bin/pando-ai.js"
@@ -43,7 +43,7 @@
43
43
  "replace-body(path, expectedHash, with, forceReplaceWillBreakSyntax)",
44
44
  "change-signature(path, expectedHash, parameters, returnType, makeAsync, makeSyncFromAsync, forceChangeWillBreakSyntax, boundary, batchSaves)",
45
45
  "filter-map-reduce(query, transforms, apply)",
46
- "shell-command(command, reasonWhyNotUsingPandoNativeTools, timeoutMs, shell, maxOutputBytes)",
46
+ "shell-command(command, reasonWhyNotUsingPandoNativeTools, timeoutMs, shell, maxOutputBytes, maxLines, lineOffset)",
47
47
  "list-snapshots(offset, limit)",
48
48
  "diff-snapshots(head, base, page)",
49
49
  "get-snapshot-trailers(snapshotId, keys)",
@@ -2077,7 +2077,7 @@
2077
2077
  {
2078
2078
  "name": "shell-command",
2079
2079
  "category": "pando",
2080
- "signature": "shell-command(command, reasonWhyNotUsingPandoNativeTools, timeoutMs, shell, maxOutputBytes)",
2080
+ "signature": "shell-command(command, reasonWhyNotUsingPandoNativeTools, timeoutMs, shell, maxOutputBytes, maxLines, lineOffset)",
2081
2081
  "description": "Strongly discouraged: prefer Pando AST/index tools before raw shell for code search, navigation, references, and supported source-code edits. Use find-nodes for structural code search and edit targets, find-references/find-callers for usages, list-exports/analyze-imports for module shape, query-db for indexed metadata, and workspace-overview for inventory. Use shell freely for tests, builds/compiles, package managers, git, generated files, non-code files, unsupported languages/file types, and anything Pando itself does not support. Pando AST writers are for supported source-code and AST-addressable edits; use shell-based patching for unsupported non-code files such as Markdown docs. Every operation that goes through Pando, including this shell command, is snapshotted before and after; snapshots are not touchable by the agent. Shell results repeat this reminder so agents reconsider Pando-native tools before the next shell call. Run a shell command with cwd fixed to the selected Pando project root, then synchronously snapshot any worktree changes before another modifying Pando operation can run. The project-root confinement is also enforced by the host environment. reasonWhyNotUsingPandoNativeTools is required and is written into the snapshot receipt/trailers for auditability. Command failures are returned to the agent with exit code, stdout, stderr, timeout state, and snapshot metadata. Example: { command:'npm test', reasonWhyNotUsingPandoNativeTools:'Run the project test suite; this is execution, not code navigation.' }",
2082
2082
  "parameters": {
2083
2083
  "type": "object",
@@ -2101,6 +2101,14 @@
2101
2101
  "reasonWhyNotUsingPandoNativeTools": {
2102
2102
  "type": "string",
2103
2103
  "description": "Required audit reason for running this command. Explain why a Pando-native tool is not appropriate: use find-nodes for code search/edit targets, find-references/find-callers for usages, list-exports/analyze-imports for module shape, and shell for tests/builds/package managers/git/generated files/non-code files/unsupported languages. This is persisted in snapshot metadata."
2104
+ },
2105
+ "maxLines": {
2106
+ "type": "number",
2107
+ "description": "Optional number of stdout lines to show in the result digest before the rest collapse to a '+N more lines' note. Display only — does not change captured bytes. Defaults to 200. 0 = show all. To see more, re-run with a higher lineOffset rather than re-reading lines you already have."
2108
+ },
2109
+ "lineOffset": {
2110
+ "type": "number",
2111
+ "description": "Optional first stdout line to display (default 0). Use this to page long output: the '+N more lines' footer prints the exact lineOffset to pass next so you fetch only the part you don't already have."
2104
2112
  }
2105
2113
  },
2106
2114
  "required": [