Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
12c23e7
fix(cli): correct the full LLM manifest
mldangelo-oai Aug 16, 2026
5789da8
fix(cli): retain manifest group metadata
mldangelo-oai Aug 16, 2026
f361e91
refactor(cli): reuse the packaged operating guide
mldangelo-oai Aug 16, 2026
0c64c2a
docs(cli): include conditional scan warnings
mldangelo-oai Aug 16, 2026
cd288ec
fix(cli): preserve scoped manifest discovery
mldangelo-oai Aug 16, 2026
e38c7b3
fix(cli): validate global values before discovery
mldangelo-oai Aug 16, 2026
47bfa5c
fix(cli): reject empty discovery option values
mldangelo-oai Aug 16, 2026
67b2c22
fix(cli): keep empty command values schema-owned
mldangelo-oai Aug 16, 2026
59cf4d1
fix(cli): preserve shell completion dispatch
mldangelo-oai Aug 16, 2026
d2e63a0
Merge main into llms-full manifest fix
mldangelo-oai Aug 16, 2026
858e352
Merge commit '5d1afcd312933121e36dc892dcb12e8d2e3e1de3' into mdangelo…
mldangelo-oai Aug 16, 2026
0ce8122
fix(cli): complete scoped manifest constraints
mldangelo-oai Aug 16, 2026
46319e3
fix(cli): share global argument ownership
mldangelo-oai Aug 16, 2026
47b8e57
test(cli): cover built-in argument ownership
mldangelo-oai Aug 16, 2026
d69c7b4
fix(cli): keep framework option errors safe
mldangelo-oai Aug 16, 2026
11bfb5a
fix(cli): preserve safe auth validation guidance
mldangelo-oai Aug 16, 2026
6bfcdbb
fix(cli): share result policies and schema guidance
mldangelo-oai Aug 16, 2026
59ae515
docs(cli): clarify discovery output filtering
mldangelo-oai Aug 16, 2026
beedc8e
test(cli): avoid pinning manifest prose
mldangelo-oai Aug 16, 2026
5f8ccba
Merge current main into CLI reference
mldangelo-oai Aug 17, 2026
025bf95
Merge main into CLI reference package checks
mldangelo-oai Aug 18, 2026
c5ad985
Merge main and fix generated CLI reference
mldangelo-oai Aug 22, 2026
91a3b7d
fix(cli): document bulk-scan output directory requirements
mldangelo-oai Aug 24, 2026
1a3106b
chore: merge main into schema-derived CLI reference
mldangelo-oai Aug 25, 2026
aa81998
fix(cli): preserve shorthand history commands with output flags
mldangelo-oai Aug 25, 2026
a13f0a7
chore: merge main into the generated CLI manifest
mldangelo-oai Aug 26, 2026
0a31c7d
fix(cli): merge main and align generated command guidance
mldangelo-oai Aug 27, 2026
ffa4bc5
fix(cli): reconcile generated guidance with current main
mldangelo-oai Aug 27, 2026
1135bb4
chore: merge final release packaging updates
mldangelo-oai Aug 27, 2026
c1fdb71
chore: merge main and preserve CLI discovery integration
mldangelo-oai Aug 31, 2026
dad7dc8
chore: resolve PR #474 conflicts with main
mldangelo-oai Sep 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 31 additions & 10 deletions sdk/typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,10 @@ runs local preflight checks.
### Scan options and output

`--path` scopes a scan to one or more paths, `--diff` scans committed changes,
and `--working-tree` scans staged and unstaged changes. Deep scans support
repository and path targets.
and `--working-tree` scans staged and unstaged changes. These selectors are
mutually exclusive. `--head` requires `--diff`; `--base` requires
`--working-tree`. Deep scans support repository and path targets, and deep-scan
settings require `--mode deep`.

Working-tree snapshots include files from untracked nested Git repositories.
Initialized submodules must be clean and checked out at the commit recorded by
Expand Down Expand Up @@ -990,6 +992,8 @@ calling workflow or issue tracker; assessments remain separate recommendations.
Commands default to the current repository. Select scans by full ID or a
unique prefix of at least eight characters.

`--scan-root` filters indexed artifact paths; it does not import report directories.

| Command | Purpose |
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `scans list [REPOSITORY]` | List scans. Filter by artifact root with `--scan-root DIR`. |
Expand Down Expand Up @@ -1044,11 +1048,21 @@ npx @openai/codex-security scan . \
--fail-on-severity high > "$SCAN_ROOT/findings.json"
```

`scan --json` writes results to stdout and progress to stderr. Result fields are
`manifest`, `findings`, `coverage`, `repositoryFindings`, `scanDir`, `reportPath`,
`artifactsDir`, `sarifPath`, `threadId`, `cost`, and `turn`. `sarifPath` and `cost`
may be null; `repositoryFindings` may be absent. `findings` describes this scan;
`repositoryFindings` includes open findings across scans when available.
A changed target adds `warnings` and exits with code `2`; the saved results
do not describe the current checkout.

Scan exit codes are `0` for a completed report-only scan or passing policy,
`1` for a policy violation, `2` for invalid input, incomplete coverage, or a
runtime/export error, `130` for interruption, and `143` for termination.
JSON scans do not use interactive controls. `validate`, `login`, and `logout`
reject `--json`.
`1` for a policy violation, `2` for invalid input, incomplete coverage, a changed
target, or a runtime/export error, `130` for interruption, and `143` for termination.
JSON scans do not use interactive controls. `verify-fix`, saved-finding patches,
and resumed patch publication support JSON and JSONL results; literal issue and
file patches do not. `validate`, `login`, and `logout` reject structured result
output. These restrictions do not apply to manifest or schema discovery.

`install-hook` scans staged and unstaged changes before each commit. It blocks
on high-severity findings or failed scans, respects `core.hooksPath`, and leaves
Expand Down Expand Up @@ -1139,10 +1153,17 @@ inconclusive or couldn't finish.

### Command discovery and integrations

The CLI uses [Incur](https://github.com/wevm/incur). Use `--llms` for the
command manifest, `scan --schema --format json` for a command schema, and
`completions bash|zsh|fish` for shell completions. Scan output supports
`--format toon|json|yaml|jsonl` and `--full-output`.
The CLI uses [Incur](https://github.com/wevm/incur). Use `--llms` for a command
index and `--llms-full` for a Markdown reference generated from the live schemas
and this operating guide. Scope the reference to a command or group, such as
`scans --llms-full`; scoped references omit the operating guide. Add
`--format json` for the original structured manifest. Its property names are
parsed option keys; command-line flags use kebab-case.

Use `scan --schema --format json` for a command schema and
`completions bash|zsh|fish` for shell completions. Scan results support
`--format toon|json|yaml|jsonl` and `--full-output`, but not Markdown or
`--filter-output`.

`skills add` syncs agent skills; `mcp add` registers the CLI as an MCP server.
MCP exposes only the read-only `info` command because the transport cannot
Expand Down
1 change: 1 addition & 0 deletions sdk/typescript/scripts/check-package.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ const distFiles = new Set(
"auth",
"bulk-scan-discovery",
"cli",
"cli-manifest",
"classify-severity",
"classify-scan-severity",
"severity-store",
Expand Down
6 changes: 6 additions & 0 deletions sdk/typescript/scripts/smoke-package.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,12 @@ try {
/lin_api_|security@example\.test/u,
);

const manifest = runInstalledCli("--llms-full");
assert.match(manifest, /^# codex-security$/mu);
assert.match(manifest, /^## Authentication$/mu);
assert.match(manifest, /\| `--working-tree` \|/u);
assert.doesNotMatch(manifest, /--[a-z][a-z0-9-]*[A-Z][A-Za-z0-9-]*/u);

const { startFindingsServer } = await import(
pathToFileURL(join(installedRoot, "dist/server/server.js")).href
);
Expand Down
Loading
Loading