@azrico/azcli 1.2.7 → 1.2.8
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 +110 -110
- package/dist/features/clean/clean.js.map +1 -1
- package/dist/features/optimize-transcripts/command.js +2 -2
- package/dist/features/optimize-transcripts/command.js.map +1 -1
- package/dist/features/optimize-transcripts/optimize.js +3 -3
- package/dist/features/optimize-transcripts/optimize.js.map +1 -1
- package/dist/features/verify-changes/config.js +4 -1
- package/dist/features/verify-changes/config.js.map +1 -1
- package/dist/features/verify-changes/line-endings.js +49 -0
- package/dist/features/verify-changes/line-endings.js.map +1 -0
- package/dist/features/verify-changes/report.js +1 -0
- package/dist/features/verify-changes/report.js.map +1 -1
- package/dist/features/verify-changes/verify.js +3 -1
- package/dist/features/verify-changes/verify.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
# az-cli
|
|
2
|
-
|
|
3
|
-
Helpers for building, cleaning, updating, and publishing projects, plus exporting and analysing AI session transcripts.
|
|
4
|
-
|
|
5
|
-
Requires Node.js 20 or newer. Yarn 4.6.0 is pinned in `package.json` and included in `.yarn/releases`.
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
node .yarn/releases/yarn-4.6.0.cjs install --immutable
|
|
9
|
-
node .yarn/releases/yarn-4.6.0.cjs typecheck
|
|
10
|
-
node .yarn/releases/yarn-4.6.0.cjs test
|
|
11
|
-
node .yarn/releases/yarn-4.6.0.cjs build
|
|
12
|
-
node dist/cli/index.js --help
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
With Yarn available on PATH, the equivalent commands are `yarn install --immutable`, `yarn typecheck`, `yarn test`, and `yarn build`.
|
|
16
|
-
|
|
17
|
-
`yarn build-dev` compiles the CLI and copies optional assets from `temp/` into `dist/`. `yarn start` watches source and asset changes. Builds use TypeScript directly and preserve source maps.
|
|
18
|
-
|
|
19
|
-
## Commands
|
|
20
|
-
|
|
21
|
-
| Command | Behavior |
|
|
22
|
-
| --- | --- |
|
|
23
|
-
| `build [mode]` | Build an inferred project, or select `php`, `yarn`, `python`, or `docker`. Docker builds also start Compose services. |
|
|
24
|
-
| `clean build` | Remove `build/` and `dist/` in the selected project. |
|
|
25
|
-
| `clean all` | Also remove dependencies, caches, and lockfiles. |
|
|
26
|
-
| `up [target..]` | Update dependencies; Yarn targets may be omitted or repeated. |
|
|
27
|
-
| `publish` | Publish a Yarn or Python package. Yarn packages are built first. |
|
|
28
|
-
| `package prepare` | Generate the workspace's core package before building. |
|
|
29
|
-
| `package finalize` | Generate publishable manifests in `dist/`, `build/`, or `temp/`. |
|
|
30
|
-
| `package publish` | Publish the prepared packages. |
|
|
31
|
-
| `package go` | Prepare, build, finalize, then publish; stop on the first failure. |
|
|
32
|
-
| `transcripts <claude\|codex>` | Export sessions to Markdown with an `index.json`. |
|
|
33
|
-
| `optimize-transcripts <claude\|codex>` | Prepare a transcript snapshot and run the selected analysis agent. |
|
|
34
|
-
| `verify-changes` | Run the checks from `.azcli/verify.json` that match files changed since the base ref. Reports `passed`, `failed`, or `not-run`; exits 1 on failure (`--strict` also on not-run). `--profile`, `--base`, `--json`. |
|
|
1
|
+
# az-cli
|
|
2
|
+
|
|
3
|
+
Helpers for building, cleaning, updating, and publishing projects, plus exporting and analysing AI session transcripts.
|
|
4
|
+
|
|
5
|
+
Requires Node.js 20 or newer. Yarn 4.6.0 is pinned in `package.json` and included in `.yarn/releases`.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
node .yarn/releases/yarn-4.6.0.cjs install --immutable
|
|
9
|
+
node .yarn/releases/yarn-4.6.0.cjs typecheck
|
|
10
|
+
node .yarn/releases/yarn-4.6.0.cjs test
|
|
11
|
+
node .yarn/releases/yarn-4.6.0.cjs build
|
|
12
|
+
node dist/cli/index.js --help
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
With Yarn available on PATH, the equivalent commands are `yarn install --immutable`, `yarn typecheck`, `yarn test`, and `yarn build`.
|
|
16
|
+
|
|
17
|
+
`yarn build-dev` compiles the CLI and copies optional assets from `temp/` into `dist/`. `yarn start` watches source and asset changes. Builds use TypeScript directly and preserve source maps.
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
| Command | Behavior |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| `build [mode]` | Build an inferred project, or select `php`, `yarn`, `python`, or `docker`. Docker builds also start Compose services. |
|
|
24
|
+
| `clean build` | Remove `build/` and `dist/` in the selected project. |
|
|
25
|
+
| `clean all` | Also remove dependencies, caches, and lockfiles. |
|
|
26
|
+
| `up [target..]` | Update dependencies; Yarn targets may be omitted or repeated. |
|
|
27
|
+
| `publish` | Publish a Yarn or Python package. Yarn packages are built first. |
|
|
28
|
+
| `package prepare` | Generate the workspace's core package before building. |
|
|
29
|
+
| `package finalize` | Generate publishable manifests in `dist/`, `build/`, or `temp/`. |
|
|
30
|
+
| `package publish` | Publish the prepared packages. |
|
|
31
|
+
| `package go` | Prepare, build, finalize, then publish; stop on the first failure. |
|
|
32
|
+
| `transcripts <claude\|codex>` | Export sessions to Markdown with an `index.json`. |
|
|
33
|
+
| `optimize-transcripts <claude\|codex>` | Prepare a transcript snapshot and run the selected analysis agent. |
|
|
34
|
+
| `verify-changes` | Run the checks from `.azcli/verify.json` that match files changed since the base ref. First restores HEAD's line endings in modified files whose CRLF/LF endings were changed. Reports `passed`, `failed`, or `not-run`; exits 1 on failure (`--strict` also on not-run). `--profile`, `--base`, `--json`. |
|
|
35
35
|
| `worktree start <path>` | Install the worktree's locked dependencies, pick a free port above the configured default, run the dev server detached, and wait for it to answer or exit. Reports URL, pid, compile result, and log file (inside the git dir). Fails at once if the process exits; `--timeout` bounds the wait. `--page`, `--port`, `--skip-install`. |
|
|
36
36
|
| `worktree status <path>` | Branch tips and dirty files of the worktree and the target, ahead/behind counts, whether the branch is merged, and dependency manifests changed on each side. |
|
|
37
37
|
| `worktree sync <path> --direction in|out|both` | Merge the target into the worktree branch (`in`) and/or the branch into the target (`out`). Refuses dirty trees; on conflict stops with the merge in progress and writes base/ours/theirs copies under the git dir, flagging whitespace-only conflicts. Never resolves conflicts; exits 1 on conflict. |
|
|
38
|
-
| `browser-check [directory]` | Start the selected project's dev server, wait for readiness, and run its browser-test script with the server origin in `BASE_URL`. `--tags`, `--headed`, `--url`, `--json`. |
|
|
39
|
-
|
|
40
|
-
Worktree commands read `.azcli/worktree.json` from the worktree, else from `--project`; run `azcli worktree start --help` for the format. All three accept `--target` and `--json`.
|
|
41
|
-
|
|
42
|
-
Project commands accept `--path` to select a working directory. Build, update, clean, and publish accept `--type`, direct flags such as `--python`, and exclusions such as `--nopython` or `--no-python`. Use `--quiet` to suppress progress. Errors go to stderr and cause a nonzero exit status.
|
|
43
|
-
|
|
44
|
-
External tools must already be available on PATH. Commands run with explicit argument arrays and working directories. On Windows, standard Node and Composer `.cmd`/`.bat` shims are resolved to their entry points without a command shell. Custom batch launchers are rejected with an explanatory error.
|
|
45
|
-
|
|
46
|
-
Production Composer installation (`up --prod` and WordPress builds) preserves the lockfile and installs with `--no-dev`. Normal Composer updates retain the existing dependency-refresh behavior. Python build/publish expands distribution files explicitly.
|
|
47
|
-
|
|
48
|
-
## Browser checks
|
|
49
|
-
|
|
50
|
-
```sh
|
|
51
|
-
azcli browser-check ./worktrees/order --tags "@shipping and not @save"
|
|
52
|
-
azcli browser-check --path ./web --url http://localhost:3001 --tags "@shipping" --headed
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The directory defaults to the current directory and does not need to be a Git repository. All browser-check configuration lives in `.azcli/browser.json`. Without `--url`, startup installs locked project dependencies, picks a free port above the configured default, and waits for the server. Exited, timed-out, or failed-compilation servers stop the browser checks before the test command runs. Started servers remain running after success or test failure; the command prints their URL, pid, and log location. Logs are written to `.azcli/logs/browser/` in the selected directory; add `.azcli/logs/` to that project's `.gitignore`. `--skip-install`, `--port`, `--page`, and `--timeout` control startup.
|
|
56
|
-
|
|
57
|
-
Use `--url` for an already-running server; this skips installation and startup. Its availability is checked by the project's tests. The server's **origin** (scheme, host, and port, without the page path) is passed as `BASE_URL`. `--headed` sets `HEADED=1`; project browser hooks must read that variable to show the browser.
|
|
58
|
-
|
|
59
|
-
By default, browser checks run `yarn test:browser` in the selected directory. Configure the test command and server together in `.azcli/browser.json` (this example assumes the application's start script reads `PORT`):
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"command": "yarn",
|
|
64
|
-
"args": ["test:browser"],
|
|
65
|
-
"baseUrlEnv": "BASE_URL",
|
|
66
|
-
"report": "cucumber-report.html",
|
|
67
|
-
"install": {
|
|
68
|
-
"command": "yarn",
|
|
69
|
-
"args": ["install", "--immutable"]
|
|
70
|
-
},
|
|
71
|
-
"dev": {
|
|
72
|
-
"command": "yarn",
|
|
73
|
-
"args": ["start"],
|
|
74
|
-
"defaultPort": 3000,
|
|
75
|
-
"portEnv": "PORT",
|
|
76
|
-
"readyPath": "/",
|
|
77
|
-
"timeoutSeconds": 120,
|
|
78
|
-
"pages": { "order": "/order" }
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
`command` is required when the file exists; `args` defaults to an empty array. Optional `cwd` selects a directory inside the selected project. `report` is relative to that test working directory and must stay inside it. `baseUrlEnv` defaults to `BASE_URL`. Config is read from the selected directory, falling back to `--project`; fallback configuration still runs against the selected directory. Tags are appended as `--tags <expression>` without shell parsing. For npm scripts, use `"command": "npm", "args": ["run", "test:browser", "--"]`.
|
|
84
|
-
|
|
85
|
-
`dev` is required for startup; without a config or `dev`, supply `--url`. `install` is optional and defaults to `yarn install --immutable` at the selected directory. Both accept `command`, `args`, and optional `cwd` relative to that directory. `dev.defaultPort` defaults to 3000; startup picks the first free port above it unless `--port` is supplied. `dev.portEnv` defaults to `PORT`, and `{port}` in dev arguments is replaced with the selected port. `dev.readyPath` defaults to `/`, `timeoutSeconds` to 120, and `binDirs` to `["node_modules/.bin"]`. `--page` selects a named path from `dev.pages`; it affects the reported server URL, while `BASE_URL` remains the origin. Optional `compiledPattern` and `failedPattern` customize regexes matched against the dev log. Worktree configuration is never read by browser-check.
|
|
86
|
-
|
|
87
|
-
The target application owns its `.feature` files, Cucumber step definitions, authentication, fixtures, and cleanup. For example, its `package.json` can define `"test:browser": "cucumber-js"`. Its browser hook should create a Playwright context with `baseURL: process.env.BASE_URL` and launch with `headless: process.env.HEADED !== '1'`. Configure Cucumber's HTML formatter to write the same file named by `report`; azcli reports its path when that file exists after a successful run. Test failures propagate to exit code 1. `--quiet` suppresses progress and subprocess output; `--json` returns server details and captured test output on success, while failures use the normal CLI error handler.
|
|
88
|
-
|
|
89
|
-
`@cucumber/cucumber` (12.x, compatible with Node.js 20) and `@playwright/test` are optional dependencies of azcli. Other commands do not import them, so they work when optional dependencies are omitted. Browser binaries are a separate setup step (`yarn playwright install chromium` in the application). The application's test script and step definitions must have their own resolvable Cucumber/Playwright dependencies, usually declared as its dev dependencies; installing azcli globally does not expose its optional packages to another project's module resolution. No packages or browser binaries are installed automatically by browser-check beyond its configured dependency install.
|
|
90
|
-
|
|
91
|
-
## Transcript options
|
|
92
|
-
|
|
93
|
-
Use `--project <text>` repeatedly to filter projects, `--since-days 0` to include all dates, and `--last N` to select the newest N matched sessions across projects. `--list` lists without exporting. Rendering supports `--user-only`, `--no-include-tools`, `--no-include-thinking`, and `--include-subagents`.
|
|
94
|
-
|
|
95
|
-
Optimization accepts `--in` for an existing export. It copies only indexed sessions to a fresh analysis directory before redacting them, preserving the original export. `--out` must name an empty directory; omitted output paths receive a unique suffix. `--dry-run` prepares the redacted snapshot and prints the agent command without launching it. Secret removal covers known project `.env` values and secret-like assignments, including summaries in the index.
|
|
96
|
-
|
|
97
|
-
## Source layout
|
|
98
|
-
|
|
99
|
-
```text
|
|
100
|
-
src/
|
|
101
|
-
cli/ entry point, registration, shared CLI options
|
|
102
|
-
core/ subprocesses, files, JSON guards, logging, project detection
|
|
103
|
-
features/
|
|
104
|
-
build/ clean/ update/ publish/ package/
|
|
105
|
-
transcripts/ extraction, rendering, types, JSONL readers
|
|
106
|
-
sources/ Claude and Codex adapters
|
|
107
|
-
optimize-transcripts/ snapshots, redaction, prompts, agent execution
|
|
108
|
-
tests/
|
|
109
|
-
fixtures/ synthetic JSONL sessions
|
|
110
|
-
scripts/ build and test entry points
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Each feature owns a typed yargs command module and its implementation. Shared subprocesses use `core/process.ts`; feature code lets failures reach the CLI boundary. Tests use temporary project fixtures and injected command runners, so the suite does not publish packages or run Docker/AI services. The test script type-checks tests and source, discovers every `tests/*.test.ts`, and keeps temporary files inside the project.
|
|
38
|
+
| `browser-check [directory]` | Start the selected project's dev server, wait for readiness, and run its browser-test script with the server origin in `BASE_URL`. `--tags`, `--headed`, `--url`, `--json`. |
|
|
39
|
+
|
|
40
|
+
Worktree commands read `.azcli/worktree.json` from the worktree, else from `--project`; run `azcli worktree start --help` for the format. All three accept `--target` and `--json`.
|
|
41
|
+
|
|
42
|
+
Project commands accept `--path` to select a working directory. Build, update, clean, and publish accept `--type`, direct flags such as `--python`, and exclusions such as `--nopython` or `--no-python`. Use `--quiet` to suppress progress. Errors go to stderr and cause a nonzero exit status.
|
|
43
|
+
|
|
44
|
+
External tools must already be available on PATH. Commands run with explicit argument arrays and working directories. On Windows, standard Node and Composer `.cmd`/`.bat` shims are resolved to their entry points without a command shell. Custom batch launchers are rejected with an explanatory error.
|
|
45
|
+
|
|
46
|
+
Production Composer installation (`up --prod` and WordPress builds) preserves the lockfile and installs with `--no-dev`. Normal Composer updates retain the existing dependency-refresh behavior. Python build/publish expands distribution files explicitly.
|
|
47
|
+
|
|
48
|
+
## Browser checks
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
azcli browser-check ./worktrees/order --tags "@shipping and not @save"
|
|
52
|
+
azcli browser-check --path ./web --url http://localhost:3001 --tags "@shipping" --headed
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The directory defaults to the current directory and does not need to be a Git repository. All browser-check configuration lives in `.azcli/browser.json`. Without `--url`, startup installs locked project dependencies, picks a free port above the configured default, and waits for the server. Exited, timed-out, or failed-compilation servers stop the browser checks before the test command runs. Started servers remain running after success or test failure; the command prints their URL, pid, and log location. Logs are written to `.azcli/logs/browser/` in the selected directory; add `.azcli/logs/` to that project's `.gitignore`. `--skip-install`, `--port`, `--page`, and `--timeout` control startup.
|
|
56
|
+
|
|
57
|
+
Use `--url` for an already-running server; this skips installation and startup. Its availability is checked by the project's tests. The server's **origin** (scheme, host, and port, without the page path) is passed as `BASE_URL`. `--headed` sets `HEADED=1`; project browser hooks must read that variable to show the browser.
|
|
58
|
+
|
|
59
|
+
By default, browser checks run `yarn test:browser` in the selected directory. Configure the test command and server together in `.azcli/browser.json` (this example assumes the application's start script reads `PORT`):
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"command": "yarn",
|
|
64
|
+
"args": ["test:browser"],
|
|
65
|
+
"baseUrlEnv": "BASE_URL",
|
|
66
|
+
"report": "cucumber-report.html",
|
|
67
|
+
"install": {
|
|
68
|
+
"command": "yarn",
|
|
69
|
+
"args": ["install", "--immutable"]
|
|
70
|
+
},
|
|
71
|
+
"dev": {
|
|
72
|
+
"command": "yarn",
|
|
73
|
+
"args": ["start"],
|
|
74
|
+
"defaultPort": 3000,
|
|
75
|
+
"portEnv": "PORT",
|
|
76
|
+
"readyPath": "/",
|
|
77
|
+
"timeoutSeconds": 120,
|
|
78
|
+
"pages": { "order": "/order" }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
`command` is required when the file exists; `args` defaults to an empty array. Optional `cwd` selects a directory inside the selected project. `report` is relative to that test working directory and must stay inside it. `baseUrlEnv` defaults to `BASE_URL`. Config is read from the selected directory, falling back to `--project`; fallback configuration still runs against the selected directory. Tags are appended as `--tags <expression>` without shell parsing. For npm scripts, use `"command": "npm", "args": ["run", "test:browser", "--"]`.
|
|
84
|
+
|
|
85
|
+
`dev` is required for startup; without a config or `dev`, supply `--url`. `install` is optional and defaults to `yarn install --immutable` at the selected directory. Both accept `command`, `args`, and optional `cwd` relative to that directory. `dev.defaultPort` defaults to 3000; startup picks the first free port above it unless `--port` is supplied. `dev.portEnv` defaults to `PORT`, and `{port}` in dev arguments is replaced with the selected port. `dev.readyPath` defaults to `/`, `timeoutSeconds` to 120, and `binDirs` to `["node_modules/.bin"]`. `--page` selects a named path from `dev.pages`; it affects the reported server URL, while `BASE_URL` remains the origin. Optional `compiledPattern` and `failedPattern` customize regexes matched against the dev log. Worktree configuration is never read by browser-check.
|
|
86
|
+
|
|
87
|
+
The target application owns its `.feature` files, Cucumber step definitions, authentication, fixtures, and cleanup. For example, its `package.json` can define `"test:browser": "cucumber-js"`. Its browser hook should create a Playwright context with `baseURL: process.env.BASE_URL` and launch with `headless: process.env.HEADED !== '1'`. Configure Cucumber's HTML formatter to write the same file named by `report`; azcli reports its path when that file exists after a successful run. Test failures propagate to exit code 1. `--quiet` suppresses progress and subprocess output; `--json` returns server details and captured test output on success, while failures use the normal CLI error handler.
|
|
88
|
+
|
|
89
|
+
`@cucumber/cucumber` (12.x, compatible with Node.js 20) and `@playwright/test` are optional dependencies of azcli. Other commands do not import them, so they work when optional dependencies are omitted. Browser binaries are a separate setup step (`yarn playwright install chromium` in the application). The application's test script and step definitions must have their own resolvable Cucumber/Playwright dependencies, usually declared as its dev dependencies; installing azcli globally does not expose its optional packages to another project's module resolution. No packages or browser binaries are installed automatically by browser-check beyond its configured dependency install.
|
|
90
|
+
|
|
91
|
+
## Transcript options
|
|
92
|
+
|
|
93
|
+
Use `--project <text>` repeatedly to filter projects, `--since-days 0` to include all dates, and `--last N` to select the newest N matched sessions across projects. `--list` lists without exporting. Rendering supports `--user-only`, `--no-include-tools`, `--no-include-thinking`, and `--include-subagents`.
|
|
94
|
+
|
|
95
|
+
Optimization accepts `--in` for an existing export. It copies only indexed sessions to a fresh analysis directory before redacting them, preserving the original export. `--out` must name an empty directory; omitted output paths receive a unique suffix. `--dry-run` prepares the redacted snapshot and prints the agent command without launching it. Secret removal covers known project `.env` values and secret-like assignments, including summaries in the index.
|
|
96
|
+
|
|
97
|
+
## Source layout
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
src/
|
|
101
|
+
cli/ entry point, registration, shared CLI options
|
|
102
|
+
core/ subprocesses, files, JSON guards, logging, project detection
|
|
103
|
+
features/
|
|
104
|
+
build/ clean/ update/ publish/ package/
|
|
105
|
+
transcripts/ extraction, rendering, types, JSONL readers
|
|
106
|
+
sources/ Claude and Codex adapters
|
|
107
|
+
optimize-transcripts/ snapshots, redaction, prompts, agent execution
|
|
108
|
+
tests/
|
|
109
|
+
fixtures/ synthetic JSONL sessions
|
|
110
|
+
scripts/ build and test entry points
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Each feature owns a typed yargs command module and its implementation. Shared subprocesses use `core/process.ts`; feature code lets failures reach the CLI boundary. Tests use temporary project fixtures and injected command runners, so the suite does not publish packages or run Docker/AI services. The test script type-checks tests and source, discovers every `tests/*.test.ts`, and keeps temporary files inside the project.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/features/clean/clean.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,4CAAkD;AAClD,0DAAyD;AACzD,8CAAgD;AAGzC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACvD,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;QACrC,IAAI,IAAA,6BAAc,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;;YAC/E,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/features/clean/clean.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,4CAAkD;AAClD,0DAAyD;AACzD,8CAAgD;AAGzC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACvD,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;QACrC,IAAI,IAAA,6BAAc,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;;YAC/E,OAAO,CAAC,IAAI,CAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,OAAO,CAAC,CAAC;KACV;IACD,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,IAAA,sBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,IAAA,oBAAW,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAhBD,oCAgBC"}
|
|
@@ -5,10 +5,10 @@ const types_1 = require("../transcripts/types");
|
|
|
5
5
|
const command_1 = require("../transcripts/command");
|
|
6
6
|
const optimize_1 = require("./optimize");
|
|
7
7
|
const command = {
|
|
8
|
-
command: 'optimize-transcripts <
|
|
8
|
+
command: 'optimize-transcripts <analysis_agent>',
|
|
9
9
|
describe: 'Analyse session transcripts and suggest workflow improvements',
|
|
10
10
|
builder: (cli) => cli
|
|
11
|
-
.positional('
|
|
11
|
+
.positional('analysis_agent', { type: 'string', choices: types_1.sourceNames, demandOption: true })
|
|
12
12
|
.options(options_1.transcript_filter_options)
|
|
13
13
|
.option('source', { type: 'string', choices: types_1.sourceNames })
|
|
14
14
|
.option('in', { type: 'string', describe: 'Copy previously extracted transcripts into a fresh analysis directory' })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/features/optimize-transcripts/command.ts"],"names":[],"mappings":";;AACA,oDAAmE;AACnE,gDAAmD;AACnD,oDAAyD;AACzD,yCAAkE;AAElE,MAAM,OAAO,GAAuC;IACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/features/optimize-transcripts/command.ts"],"names":[],"mappings":";;AACA,oDAAmE;AACnE,gDAAmD;AACnD,oDAAyD;AACzD,yCAAkE;AAElE,MAAM,OAAO,GAAuC;IACnD,OAAO,EAAE,uCAAuC;IAChD,QAAQ,EAAE,+DAA+D;IACzE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;SACnB,UAAU,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAW,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC1F,OAAO,CAAC,mCAAyB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAW,EAAE,CAAC;SAC1D,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,uEAAuE,EAAE,CAAC;SACnH,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CAAC;SAChG,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC;SACrF,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,sCAAsC,EAAE,CAAC;SAClG,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACnC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,CAAC;SACjG,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAe,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,IAAA,8BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAC;AACF,kBAAe,OAAO,CAAC"}
|
|
@@ -22,7 +22,7 @@ function createRunDirectory(options) {
|
|
|
22
22
|
return directory;
|
|
23
23
|
}
|
|
24
24
|
node_fs_1.default.mkdirSync(options_1.default_out_root, { recursive: true });
|
|
25
|
-
return node_fs_1.default.mkdtempSync(node_path_1.default.join(options_1.default_out_root, `optimize-${options.source ?? options.
|
|
25
|
+
return node_fs_1.default.mkdtempSync(node_path_1.default.join(options_1.default_out_root, `optimize-${options.source ?? options.analysis_agent}-${new Date().toISOString().slice(0, 10)}-`));
|
|
26
26
|
}
|
|
27
27
|
async function prepareTranscripts(options) {
|
|
28
28
|
if (options.in) {
|
|
@@ -38,7 +38,7 @@ async function prepareTranscripts(options) {
|
|
|
38
38
|
node_fs_1.default.writeFileSync(node_path_1.default.join(outDir, 'index.json'), JSON.stringify(index, null, 2));
|
|
39
39
|
return { outDir, index };
|
|
40
40
|
}
|
|
41
|
-
const source = extract_1.transcript_sources[options.source ?? options.
|
|
41
|
+
const source = extract_1.transcript_sources[options.source ?? options.analysis_agent];
|
|
42
42
|
return (0, extract_1.extractTranscripts)(source, { ...options, out: createRunDirectory(options), list: false });
|
|
43
43
|
}
|
|
44
44
|
exports.prepareTranscripts = prepareTranscripts;
|
|
@@ -54,7 +54,7 @@ async function optimizeTranscripts(options) {
|
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
56
56
|
const redacted = (0, redact_1.redactTranscripts)(outDir, index);
|
|
57
|
-
const run = (0, agent_runner_1.agentRun)(options.
|
|
57
|
+
const run = (0, agent_runner_1.agentRun)(options.analysis_agent, systemPrompt, options.model);
|
|
58
58
|
if (!options.quiet) {
|
|
59
59
|
(0, logger_1.showMessage)(`Secrets removed from ${redacted} of ${sessions} transcripts`);
|
|
60
60
|
(0, logger_1.showMessage)((0, agent_runner_1.describeRun)(run));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../../src/features/optimize-transcripts/optimize.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,4CAAiD;AACjD,8CAAgD;AAChD,oDAAgF;AAChF,oDAA0D;AAE1D,iDAAiE;AACjE,qCAAkE;AAClE,uCAA+D;AAY/D,SAAS,kBAAkB,CAAC,OAAwB;IACnD,IAAI,OAAO,CAAC,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,iBAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC/F,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;KACjB;IACD,iBAAE,CAAC,SAAS,CAAC,0BAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,iBAAE,CAAC,WAAW,CAAC,mBAAI,CAAC,IAAI,CAAC,0BAAgB,EAAE,YAAY,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../../src/features/optimize-transcripts/optimize.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,10 @@ Fields:
|
|
|
39
39
|
A check runs only if a file changed since the base (committed, staged,
|
|
40
40
|
unstaged, or untracked) matches its paths. Each check ends as passed, failed
|
|
41
41
|
(nonzero exit), or not-run (no matching changes, or the command could not
|
|
42
|
-
start). Exit code is 1 if any check failed; --strict also fails on not-run
|
|
42
|
+
start). Exit code is 1 if any check failed; --strict also fails on not-run.
|
|
43
|
+
|
|
44
|
+
Before the checks run, modified tracked files whose line endings differ from
|
|
45
|
+
the ones a checkout of HEAD would write are converted back to them.`;
|
|
43
46
|
function stringArray(value, label) {
|
|
44
47
|
if (!Array.isArray(value) || value.some((item) => typeof item !== 'string'))
|
|
45
48
|
throw new Error(`${label} must be an array of strings`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/features/verify-changes/config.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,0CAAqD;AAExC,QAAA,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAgBhD,QAAA,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/features/verify-changes/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.restoreLineEndings = exports.detectLineEnding = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
/** The single line ending used throughout `text`, or undefined when it has none, mixes them, or looks binary. */
|
|
10
|
+
function detectLineEnding(text) {
|
|
11
|
+
if (text.includes('\0'))
|
|
12
|
+
return undefined;
|
|
13
|
+
const crlf = text.match(/\r\n/g)?.length ?? 0;
|
|
14
|
+
const lf = (text.match(/\n/g)?.length ?? 0) - crlf;
|
|
15
|
+
if (crlf && !lf)
|
|
16
|
+
return 'crlf';
|
|
17
|
+
if (lf && !crlf)
|
|
18
|
+
return 'lf';
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
exports.detectLineEnding = detectLineEnding;
|
|
22
|
+
/**
|
|
23
|
+
* Restores the line endings of modified tracked files to the ones a checkout of HEAD would write,
|
|
24
|
+
* when the original used one ending consistently. Returns the rewritten paths, relative to `cwd`.
|
|
25
|
+
*/
|
|
26
|
+
async function restoreLineEndings(run, cwd) {
|
|
27
|
+
const options = { cwd, quiet: true };
|
|
28
|
+
const diff = await run('git', ['diff', '--name-only', '--no-renames', '--relative', '--diff-filter=M', 'HEAD'], options);
|
|
29
|
+
const fixed = [];
|
|
30
|
+
for (const file of diff.stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean)) {
|
|
31
|
+
const target = node_path_1.default.join(cwd, file);
|
|
32
|
+
if (!node_fs_1.default.existsSync(target))
|
|
33
|
+
continue;
|
|
34
|
+
// --filters applies the eol/autocrlf conversion that a checkout would.
|
|
35
|
+
const original = await run('git', ['cat-file', '--filters', `HEAD:./${file}`], options).catch(() => undefined);
|
|
36
|
+
const ending = original && detectLineEnding(original.stdout);
|
|
37
|
+
if (!ending)
|
|
38
|
+
continue;
|
|
39
|
+
// latin1 maps bytes one to one, so everything except the line endings is written back unchanged.
|
|
40
|
+
const current = node_fs_1.default.readFileSync(target, 'latin1');
|
|
41
|
+
if (current.includes('\0') || detectLineEnding(current) === ending || !current.includes('\n'))
|
|
42
|
+
continue;
|
|
43
|
+
node_fs_1.default.writeFileSync(target, ending === 'crlf' ? current.replace(/\r?\n/g, '\r\n') : current.replace(/\r\n/g, '\n'), 'latin1');
|
|
44
|
+
fixed.push(file);
|
|
45
|
+
}
|
|
46
|
+
return fixed;
|
|
47
|
+
}
|
|
48
|
+
exports.restoreLineEndings = restoreLineEndings;
|
|
49
|
+
//# sourceMappingURL=line-endings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-endings.js","sourceRoot":"","sources":["../../../src/features/verify-changes/line-endings.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAK7B,iHAAiH;AACjH,SAAgB,gBAAgB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACnD,IAAI,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,SAAS,CAAC;AAClB,CAAC;AAPD,4CAOC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,GAAkB,EAAE,GAAW;IACvE,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACzH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzF,MAAM,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACrC,uEAAuE;QACvE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,iGAAiG;QACjG,MAAM,OAAO,GAAG,iBAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACxG,iBAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3H,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjB;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAlBD,gDAkBC"}
|
|
@@ -22,6 +22,7 @@ function formatReport(report, strict = false) {
|
|
|
22
22
|
const count = (status) => report.results.filter((r) => r.status === status).length;
|
|
23
23
|
return [
|
|
24
24
|
`Base ${report.base}, ${report.changed.length} changed file(s)`,
|
|
25
|
+
...report.lineEndingsRestored.map((file) => `${chalk_1.default.cyan('eol')} restored original line endings: ${file}`),
|
|
25
26
|
...report.results.map(formatResult),
|
|
26
27
|
`${count('passed')} passed, ${count('failed')} failed, ${count('not-run')} not run${strict && count('not-run') ? ' (strict: not-run fails)' : ''}`,
|
|
27
28
|
].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/features/verify-changes/report.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,MAAM,MAAM,GAAkD,EAAE,MAAM,EAAE,eAAK,CAAC,KAAK,EAAE,MAAM,EAAE,eAAK,CAAC,GAAG,EAAE,SAAS,EAAE,eAAK,CAAC,MAAM,EAAE,CAAC;AAElI,0EAA0E;AAC1E,SAAgB,cAAc,CAAC,MAAoB,EAAE,MAAM,GAAG,KAAK;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAFD,wCAEC;AAED,SAAS,YAAY,CAAC,MAAmB;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IAC7G,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAgB,YAAY,CAAC,MAAoB,EAAE,MAAM,GAAG,KAAK;IAChE,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAChG,OAAO;QACN,QAAQ,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB;QAC/D,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACnC,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,SAAS,CAAC,WAAW,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE;KAClJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/features/verify-changes/report.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,MAAM,MAAM,GAAkD,EAAE,MAAM,EAAE,eAAK,CAAC,KAAK,EAAE,MAAM,EAAE,eAAK,CAAC,GAAG,EAAE,SAAS,EAAE,eAAK,CAAC,MAAM,EAAE,CAAC;AAElI,0EAA0E;AAC1E,SAAgB,cAAc,CAAC,MAAoB,EAAE,MAAM,GAAG,KAAK;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAFD,wCAEC;AAED,SAAS,YAAY,CAAC,MAAmB;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IAC7G,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAgB,YAAY,CAAC,MAAoB,EAAE,MAAM,GAAG,KAAK;IAChE,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAChG,OAAO;QACN,QAAQ,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB;QAC/D,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC;QAC/G,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACnC,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,SAAS,CAAC,WAAW,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE;KAClJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AARD,oCAQC"}
|
|
@@ -9,6 +9,7 @@ const process_1 = require("../../core/process");
|
|
|
9
9
|
const files_1 = require("../../core/files");
|
|
10
10
|
const changed_files_1 = require("./changed-files");
|
|
11
11
|
const config_1 = require("./config");
|
|
12
|
+
const line_endings_1 = require("./line-endings");
|
|
12
13
|
const select_1 = require("./select");
|
|
13
14
|
async function runCheck(run, root, profile, check) {
|
|
14
15
|
const started = Date.now();
|
|
@@ -37,6 +38,7 @@ async function verifyChanges(options, run = process_1.runCommand) {
|
|
|
37
38
|
if (!config.profiles[name])
|
|
38
39
|
throw new Error(`Unknown profile "${name}". Available: ${Object.keys(config.profiles).join(', ') || 'none'}`);
|
|
39
40
|
const base = await (0, changed_files_1.resolveBase)(run, root, options.base ?? config.base);
|
|
41
|
+
const lineEndingsRestored = await (0, line_endings_1.restoreLineEndings)(run, root);
|
|
40
42
|
const changed = await (0, changed_files_1.getChangedFiles)(run, root, base);
|
|
41
43
|
const results = [];
|
|
42
44
|
for (const profile of names) {
|
|
@@ -48,7 +50,7 @@ async function verifyChanges(options, run = process_1.runCommand) {
|
|
|
48
50
|
results.push(await runCheck(run, root, profile, check));
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
return { base, changed, results };
|
|
53
|
+
return { base, changed, lineEndingsRestored, results };
|
|
52
54
|
}
|
|
53
55
|
exports.verifyChanges = verifyChanges;
|
|
54
56
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/features/verify-changes/verify.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/features/verify-changes/verify.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,gDAA6E;AAC7E,4CAAiD;AACjD,mDAA+D;AAC/D,qCAAmD;AACnD,iDAAoD;AACpD,qCAAsC;AAkBtC,KAAK,UAAU,QAAQ,CAAC,GAAkB,EAAE,IAAY,EAAE,OAAe,EAAE,KAAkB;IAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,MAAsD,EAAe,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;KAC9F,CAAC,CAAC;IACH,IAAI;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACpE;IAAC,OAAO,KAAK,EAAE;QACf,IAAI,KAAK,YAAY,sBAAY,EAAE;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1F,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAC9G;QACD,oEAAoE;QACpE,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACrG;AACF,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAsB,EAAE,MAAqB,oBAAU;IAC1F,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACpK,MAAM,IAAI,GAAG,MAAM,IAAA,2BAAW,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,mBAAmB,GAAG,MAAM,IAAA,iCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAe,EAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAA,mBAAU,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;gBAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aACrI;;gBAAM,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAC/D;KACD;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAjBD,sCAiBC"}
|