logicstamp-context 0.8.2 → 0.8.3
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 +44 -99
- package/dist/cli/commands/context/watchMode/watchMode.d.ts.map +1 -1
- package/dist/cli/commands/context/watchMode/watchMode.js +121 -36
- package/dist/cli/commands/context/watchMode/watchMode.js.map +1 -1
- package/dist/utils/secretDetector.d.ts.map +1 -1
- package/dist/utils/secretDetector.js +17 -10
- package/dist/utils/secretDetector.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<a href="https://logicstamp.dev">
|
|
3
3
|
<picture>
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="assets/logicstamp-
|
|
5
|
-
<source media="(prefers-color-scheme: light)" srcset="assets/logicstamp-
|
|
6
|
-
<img src="assets/logicstamp-
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/logicstamp-wordmark-dark.png">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="assets/logicstamp-wordmark-light.png">
|
|
6
|
+
<img src="assets/logicstamp-wordmark-light.png" alt="LogicStamp" width="400" height="auto">
|
|
7
7
|
</picture>
|
|
8
8
|
</a>
|
|
9
9
|
|
|
@@ -45,13 +45,12 @@ Use with [logicstamp-mcp](https://github.com/LogicStamp/logicstamp-mcp) to feed
|
|
|
45
45
|
- [Watch Mode](#watch-mode)
|
|
46
46
|
- [How it Works](#how-it-works)
|
|
47
47
|
- [MCP Server](#mcp-server)
|
|
48
|
-
- [Example Output](#example-output)
|
|
49
|
-
- [Installation](#installation)
|
|
50
48
|
- [Security](#security)
|
|
51
49
|
- [Usage](#usage)
|
|
52
50
|
- [Framework Support](#framework-support)
|
|
53
51
|
- [Documentation](#documentation)
|
|
54
52
|
- [Known Limitations](#known-limitations)
|
|
53
|
+
- [Benchmarks](#benchmarks)
|
|
55
54
|
- [Requirements](#requirements)
|
|
56
55
|
- [Need Help?](#need-help)
|
|
57
56
|
- [License](#license)
|
|
@@ -64,20 +63,11 @@ They hallucinate props, miss dependencies, and can’t detect when a breaking ch
|
|
|
64
63
|
|
|
65
64
|
Example: your `Button` accepts `variant` and `disabled`, but the AI suggests `isLoading` because it saw that pattern elsewhere. Without a structured contract, there is no reliable source of truth.
|
|
66
65
|
|
|
67
|
-
**LogicStamp Context**
|
|
68
|
-
|
|
69
|
-
These contracts:
|
|
70
|
-
|
|
71
|
-
- Stay in sync with your code (watch mode auto-regenerates)
|
|
72
|
-
- Expose interfaces (props, hooks, APIs) without implementation noise
|
|
73
|
-
- Are deterministic, diffable, and auditable
|
|
74
|
-
- Enable early detection of architectural drift and breaking changes
|
|
66
|
+
**LogicStamp Context** derives that layer from your TypeScript - explicit interfaces and dependency structure for tools to consume instead of inferring from implementation.
|
|
75
67
|
|
|
76
68
|

|
|
77
69
|
*Example workflow: `stamp context --strict-watch` generates context bundles that MCP-powered assistants use to explain component architecture (ThemeContext shown here).*
|
|
78
70
|
|
|
79
|
-
**Same code ⇒ same context output.** Contracts are diffable, so you can detect drift and breaking changes.
|
|
80
|
-
|
|
81
71
|
```
|
|
82
72
|
TypeScript Code → Compilation → Deterministic Contracts → AI Assistant
|
|
83
73
|
(.ts/.tsx) (ts-morph) (context.json bundles) (Claude, Cursor)
|
|
@@ -87,7 +77,8 @@ TypeScript Code → Compilation → Deterministic Contracts → AI Assista
|
|
|
87
77
|
|
|
88
78
|
## Quick Start
|
|
89
79
|
|
|
90
|
-
|
|
80
|
+
No install required:
|
|
81
|
+
|
|
91
82
|
```bash
|
|
92
83
|
npx logicstamp-context context
|
|
93
84
|
```
|
|
@@ -98,14 +89,22 @@ Scans your repo and writes `context.json` files + `context_main.json` for AI too
|
|
|
98
89
|
- 📁 `context.json` files - one per folder with components, preserving your directory structure
|
|
99
90
|
- 📋 `context_main.json` - index file with project overview and folder metadata
|
|
100
91
|
|
|
101
|
-
|
|
92
|
+
### Installation
|
|
93
|
+
|
|
94
|
+
For ongoing use, install the CLI globally:
|
|
95
|
+
|
|
102
96
|
```bash
|
|
103
97
|
npm install -g logicstamp-context
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The `stamp` command is then available everywhere. Initialize and generate context:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
104
103
|
stamp init # sets up .gitignore, scans for secrets
|
|
105
104
|
stamp context
|
|
106
105
|
```
|
|
107
106
|
|
|
108
|
-
> **ℹ️ Note:** With `npx`, run `npx logicstamp-context context`. After global install, use `stamp context`.
|
|
107
|
+
> **ℹ️ Note:** With `npx`, run `npx logicstamp-context context`. After a global install, use `stamp context`.
|
|
109
108
|
|
|
110
109
|
📋 **For detailed setup instructions, see the [Getting Started Guide](https://logicstamp.dev/docs/getting-started).**
|
|
111
110
|
|
|
@@ -113,17 +112,18 @@ stamp context
|
|
|
113
112
|
|
|
114
113
|
| Without LogicStamp Context | With LogicStamp Context |
|
|
115
114
|
|-------------------|-----------------|
|
|
116
|
-
| AI parses 200 lines of implementation to infer a component's interface | AI reads a 20-line interface contract |
|
|
115
|
+
| AI parses ~200 lines of implementation to infer a component's interface | AI reads a ~20-line interface contract |
|
|
117
116
|
| Props/hooks inferred (often wrong) | Props/hooks explicit and verified |
|
|
118
117
|
| No way to know if context is stale | Watch mode catches changes in real-time |
|
|
119
118
|
| Different prompts = different understanding | Deterministic: same code = same contract |
|
|
120
119
|
| Manual context gathering: "Here's my Button component..." | Structured contracts: AI understands architecture automatically |
|
|
121
120
|
|
|
122
|
-
**
|
|
121
|
+
**Key insight:** AI assistants don’t need your implementation - they need your *interfaces*.
|
|
122
|
+
LogicStamp extracts what matters and discards the noise.
|
|
123
123
|
|
|
124
124
|
### What "Structured" Means
|
|
125
125
|
|
|
126
|
-
Instead of
|
|
126
|
+
Instead of sending raw source code to AI:
|
|
127
127
|
|
|
128
128
|
```typescript
|
|
129
129
|
// Raw: AI must parse and infer
|
|
@@ -151,8 +151,12 @@ LogicStamp Context generates:
|
|
|
151
151
|
|
|
152
152
|
Pre-parsed. Categorized. Stable. The AI reads contracts, not implementations.
|
|
153
153
|
|
|
154
|
+
On disk, each folder’s `context.json` is a **LogicStampBundle**: contracts live under `graph.nodes`, with `graph.edges` for dependencies. **`context_main.json`** indexes folders and metadata. **Full JSON shape:** [docs/reference/schema.md](docs/reference/schema.md).
|
|
155
|
+
|
|
154
156
|
## ⚡ Features
|
|
155
157
|
|
|
158
|
+
**Under the hood:** the TypeScript compiler API (via ts-morph). **Analysis-only** - it describes your codebase and emits context files. it does not transform or refactor your source.
|
|
159
|
+
|
|
156
160
|
**Core:**
|
|
157
161
|
- **Deterministic contracts** - Same input = same output, auditable in version control
|
|
158
162
|
- **Watch mode** - Auto-regenerate on file changes with incremental rebuilds
|
|
@@ -172,6 +176,14 @@ Pre-parsed. Categorized. Stable. The AI reads contracts, not implementations.
|
|
|
172
176
|
- Security-first: automatic secret detection and sanitization
|
|
173
177
|
- Zero config required - sensible defaults, works out of the box
|
|
174
178
|
|
|
179
|
+
### How it fits your stack
|
|
180
|
+
|
|
181
|
+
- **Works alongside `tsc`** - Focuses on contract structure and change detection, not type-checking. Use `tsc --noEmit` for compiler errors. `compare --strict` and `--strict-watch` flag **contract-level** breaking changes.
|
|
182
|
+
- **Beyond `.d.ts`** - Adds semantic contracts, dependency graphs, and diffable hashes (`semanticHash`, `bundleHash`) alongside declaration surfaces.
|
|
183
|
+
- **Context, not control** - Feeds structured context to assistants. Decisions stay with you.
|
|
184
|
+
|
|
185
|
+
📋 **For detailed behavior, CLI options, and workflows, see the [Usage guide](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md).**
|
|
186
|
+
|
|
175
187
|
## Watch Mode
|
|
176
188
|
|
|
177
189
|
<p align="center">
|
|
@@ -245,43 +257,10 @@ The compilation pipeline:
|
|
|
245
257
|
5. **Emit** - Outputs `context.json` bundles per folder
|
|
246
258
|
6. **Index** - Generates `context_main.json` with metadata and statistics
|
|
247
259
|
|
|
248
|
-
**Why AST-based compilation matters:** LogicStamp leverages the full TypeScript compiler (via ts-morph) for deterministic, type-aware contract extraction. Prop types, hooks, and composition patterns are resolved structurally - not inferred from text or retrieval.
|
|
249
|
-
|
|
250
260
|
One command. No build step required.
|
|
251
261
|
|
|
252
262
|
> **💡Tip:** Use `stamp context` for basic contracts. Use `stamp context style` when you need style metadata (Tailwind classes, SCSS selectors, layout patterns). Use `--style-mode lean` (default) for compact output or `--style-mode full` for detailed arrays.
|
|
253
263
|
|
|
254
|
-
<details>
|
|
255
|
-
<summary><strong>📋 What LogicStamp Context Is (and Isn't)</strong></summary>
|
|
256
|
-
|
|
257
|
-
**LogicStamp Context IS:**
|
|
258
|
-
|
|
259
|
-
✅ **A context compiler** - Uses the TypeScript compiler API (via ts-morph) to compile source code into deterministic architectural contracts.
|
|
260
|
-
|
|
261
|
-
✅ **Deterministic** - Same input always produces the same output. Contracts are auditable and diffable.
|
|
262
|
-
|
|
263
|
-
✅ **Local execution** - Runs entirely on your machine (no cloud services, no network calls).
|
|
264
|
-
|
|
265
|
-
✅ **Framework-aware** - Understands React, Next.js, Vue, Express, and NestJS patterns and extracts relevant metadata.
|
|
266
|
-
|
|
267
|
-
✅ **Non-opinionated** - Describes what exists without enforcing patterns or architectural decisions.
|
|
268
|
-
|
|
269
|
-
**LogicStamp Context IS NOT:**
|
|
270
|
-
|
|
271
|
-
❌ **A code generator** - It never writes or modifies your source code.
|
|
272
|
-
|
|
273
|
-
❌ **A documentation generator** - It produces structured contracts, not documentation.
|
|
274
|
-
|
|
275
|
-
❌ **A build or runtime tool** - It compiles contracts from static source code. it does not execute or bundle your application.
|
|
276
|
-
|
|
277
|
-
❌ **A linter, formatter, or testing framework** - It does not check code quality or run tests.
|
|
278
|
-
|
|
279
|
-
❌ **An AI behavior controller** - It provides structured context. it does not alter AI responses.
|
|
280
|
-
|
|
281
|
-
❌ **A replacement for reading code** - It accelerates understanding without replacing engineering judgment.
|
|
282
|
-
|
|
283
|
-
</details>
|
|
284
|
-
|
|
285
264
|
## MCP Server
|
|
286
265
|
|
|
287
266
|
For AI assistants with MCP support (Claude Desktop, Cursor, etc.):
|
|
@@ -296,48 +275,6 @@ Then configure your AI assistant to use the LogicStamp MCP Server.
|
|
|
296
275
|
|
|
297
276
|
📋 **See [MCP Getting Started Guide](https://logicstamp.dev/docs/mcp/getting-started)** for setup instructions.
|
|
298
277
|
|
|
299
|
-
## Example Output
|
|
300
|
-
|
|
301
|
-
LogicStamp Context generates structured JSON bundles organized by folder:
|
|
302
|
-
|
|
303
|
-
```json
|
|
304
|
-
{
|
|
305
|
-
"type": "LogicStampBundle",
|
|
306
|
-
"entryId": "src/components/Button.tsx",
|
|
307
|
-
"graph": {
|
|
308
|
-
"nodes": [
|
|
309
|
-
{
|
|
310
|
-
"entryId": "src/components/Button.tsx",
|
|
311
|
-
"contract": {
|
|
312
|
-
"kind": "react:component",
|
|
313
|
-
"interface": {
|
|
314
|
-
"props": {
|
|
315
|
-
"variant": { "type": "literal-union", "literals": ["primary", "secondary"] },
|
|
316
|
-
"onClick": { "type": "function", "signature": "() => void" }
|
|
317
|
-
}
|
|
318
|
-
},
|
|
319
|
-
"composition": {
|
|
320
|
-
"hooks": ["useState"],
|
|
321
|
-
"components": ["./Icon"]
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
],
|
|
326
|
-
"edges": [["src/components/Button.tsx", "./Icon"]]
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
📋 **See [docs/reference/schema.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/schema.md)** for complete format documentation.
|
|
332
|
-
|
|
333
|
-
## Installation
|
|
334
|
-
|
|
335
|
-
```bash
|
|
336
|
-
npm install -g logicstamp-context
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
After installation, the `stamp` command is available globally.
|
|
340
|
-
|
|
341
278
|
## Security
|
|
342
279
|
|
|
343
280
|
**Automatic Secret Protection**
|
|
@@ -426,10 +363,18 @@ LogicStamp Context is in beta. Some edge cases are not fully supported.
|
|
|
426
363
|
|
|
427
364
|
📋 **See [docs/reference/limitations.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/limitations.md)** for the full list.
|
|
428
365
|
|
|
366
|
+
## Benchmarks
|
|
367
|
+
|
|
368
|
+
You can compare bundle token costs across modes on your repo with `stamp context --compare-modes` (see [compare modes](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare-modes.md)).
|
|
369
|
+
|
|
370
|
+
**Formal benchmarks** are on the [roadmap](https://github.com/LogicStamp/logicstamp-context/blob/main/ROADMAP.md#performance--optimization):
|
|
371
|
+
- CLI/runtime baselines
|
|
372
|
+
- LLM evaluations (with vs without LogicStamp context)
|
|
373
|
+
|
|
429
374
|
## Requirements
|
|
430
375
|
|
|
431
|
-
- Node.js >= 20
|
|
432
|
-
- TypeScript codebase (
|
|
376
|
+
- **Node.js** >= 20
|
|
377
|
+
- **TypeScript codebase** - `.ts` / `.tsx` only (JavaScript is not yet analyzed). Frameworks, UI libraries, and limits: **[Framework support](#framework-support)**.
|
|
433
378
|
|
|
434
379
|
## Need Help?
|
|
435
380
|
|
|
@@ -456,4 +401,4 @@ Issues and PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
|
456
401
|
This project follows a [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
457
402
|
</details>
|
|
458
403
|
|
|
459
|
-
**Links:** [Website](https://logicstamp.dev) · [GitHub](https://github.com/LogicStamp/logicstamp-context) · [MCP Server](https://github.com/LogicStamp/logicstamp-mcp) · [Changelog](https://github.com/LogicStamp/logicstamp-context/blob/main/CHANGELOG.md)
|
|
404
|
+
**Links:** [Website](https://logicstamp.dev) · [GitHub](https://github.com/LogicStamp/logicstamp-context) · [MCP Server](https://github.com/LogicStamp/logicstamp-mcp) · [Changelog](https://github.com/LogicStamp/logicstamp-context/blob/main/CHANGELOG.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchMode.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/context/watchMode/watchMode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AASpB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"watchMode.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/context/watchMode/watchMode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AASpB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsBvE;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAE,UAAU,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAirBxI"}
|
|
@@ -15,6 +15,9 @@ import { getChanges, showChanges } from './watchDiff.js';
|
|
|
15
15
|
import { initializeWatchCache, incrementalRebuild, } from './index.js';
|
|
16
16
|
import { buildContractsFromFiles, writeContextFiles, writeMainIndex, groupBundlesByFolder, displayProjectRoot, } from '../index.js';
|
|
17
17
|
import { contextCommand } from '../../context.js';
|
|
18
|
+
function formatErrorMessage(error) {
|
|
19
|
+
return error instanceof Error ? error.message : String(error);
|
|
20
|
+
}
|
|
18
21
|
/**
|
|
19
22
|
* Display session status block
|
|
20
23
|
*/
|
|
@@ -68,10 +71,10 @@ export async function startWatchMode(options, projectRoot, initialCache = null)
|
|
|
68
71
|
let debounceTimer = null;
|
|
69
72
|
let regenerationPromise = null; // Promise-based lock to prevent race conditions
|
|
70
73
|
let changedFiles = new Set();
|
|
71
|
-
|
|
74
|
+
/** Snapshot for `getChanges` / strict-watch: set on first load; reset when watch cache is recovered after an error (new stable tree). */
|
|
75
|
+
let baselineBundles = null;
|
|
72
76
|
let previousBundles = null; // Last state - for incremental tracking
|
|
73
77
|
let watchCache = initialCache;
|
|
74
|
-
let isFirstRun = false; // Set to false since cache is already initialized
|
|
75
78
|
// Strict watch mode state
|
|
76
79
|
let strictWatchStatus = options.strictWatch ? {
|
|
77
80
|
active: true,
|
|
@@ -88,30 +91,92 @@ export async function startWatchMode(options, projectRoot, initialCache = null)
|
|
|
88
91
|
const DEBOUNCE_DELAY = 500;
|
|
89
92
|
// Helper to load all bundles from context files
|
|
90
93
|
const loadAllBundles = async (outputDir) => {
|
|
94
|
+
const mainIndexPath = join(outputDir, 'context_main.json');
|
|
95
|
+
let mainIndexContent;
|
|
91
96
|
try {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
97
|
+
mainIndexContent = await readFile(mainIndexPath, 'utf8');
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const code = error?.code;
|
|
101
|
+
if (code === 'ENOENT') {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
if (!options.quiet) {
|
|
105
|
+
console.warn(` ⚠️ Watch: could not read context index (${mainIndexPath}): ${formatErrorMessage(error)}`);
|
|
106
|
+
}
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
let mainIndex;
|
|
110
|
+
try {
|
|
111
|
+
mainIndex = JSON.parse(mainIndexContent);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (!options.quiet) {
|
|
115
|
+
console.warn(` ⚠️ Watch: context index is not valid JSON (${mainIndexPath}): ${formatErrorMessage(error)}`);
|
|
116
|
+
}
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
const allBundles = [];
|
|
120
|
+
if (mainIndex.folders) {
|
|
121
|
+
for (const folder of mainIndex.folders) {
|
|
122
|
+
if (folder.contextFile) {
|
|
123
|
+
const contextPath = join(outputDir, folder.contextFile);
|
|
124
|
+
try {
|
|
125
|
+
const contextContent = await readFile(contextPath, 'utf8');
|
|
126
|
+
const bundles = JSON.parse(contextContent);
|
|
127
|
+
allBundles.push(...bundles);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
if (!options.quiet) {
|
|
131
|
+
console.warn(` ⚠️ Watch: could not load folder context ${contextPath}: ${formatErrorMessage(error)}`);
|
|
107
132
|
}
|
|
108
133
|
}
|
|
109
134
|
}
|
|
110
135
|
}
|
|
111
|
-
return allBundles;
|
|
112
136
|
}
|
|
113
|
-
|
|
114
|
-
|
|
137
|
+
return allBundles;
|
|
138
|
+
};
|
|
139
|
+
/** After incremental failure, run a full rebuild and re-init cache so watch mode can recover. */
|
|
140
|
+
const attemptWatchCacheRecovery = async () => {
|
|
141
|
+
try {
|
|
142
|
+
const outPathResolved = resolve(options.out);
|
|
143
|
+
const outputDirResolved = outPathResolved.endsWith('.json') ? dirname(outPathResolved) : outPathResolved;
|
|
144
|
+
const regenerateOptions = {
|
|
145
|
+
...options,
|
|
146
|
+
watch: false,
|
|
147
|
+
strictMissing: false,
|
|
148
|
+
quiet: true,
|
|
149
|
+
suppressSuccessIndicator: true,
|
|
150
|
+
};
|
|
151
|
+
await contextCommand(regenerateOptions);
|
|
152
|
+
const newBundles = await loadAllBundles(outputDirResolved);
|
|
153
|
+
if (newBundles.length === 0) {
|
|
154
|
+
if (!options.quiet) {
|
|
155
|
+
console.warn(' ⚠️ Full rebuild after error produced no bundles; incremental watch stays disabled.');
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const files = await globFiles(projectRoot);
|
|
160
|
+
const stampignore = await readStampignore(projectRoot);
|
|
161
|
+
const filteredFiles = stampignore ? filterIgnoredFiles(files, stampignore.ignore, projectRoot) : files;
|
|
162
|
+
const { contracts } = await buildContractsFromFiles(filteredFiles, projectRoot, {
|
|
163
|
+
includeStyle: options.includeStyle,
|
|
164
|
+
styleMode: options.styleMode,
|
|
165
|
+
predictBehavior: options.predictBehavior,
|
|
166
|
+
quiet: true,
|
|
167
|
+
});
|
|
168
|
+
const manifest = buildDependencyGraph(contracts);
|
|
169
|
+
const cache = await initializeWatchCache(filteredFiles, contracts, manifest, newBundles, projectRoot);
|
|
170
|
+
if (cache == null) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
return { cache, bundles: newBundles };
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
if (!options.quiet) {
|
|
177
|
+
console.warn(` ⚠️ Watch: full rebuild recovery failed: ${formatErrorMessage(error)}`);
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
115
180
|
}
|
|
116
181
|
};
|
|
117
182
|
const regenerate = async () => {
|
|
@@ -134,8 +199,8 @@ export async function startWatchMode(options, projectRoot, initialCache = null)
|
|
|
134
199
|
// Determine output directory
|
|
135
200
|
const outPath = resolve(options.out);
|
|
136
201
|
const outputDir = outPath.endsWith('.json') ? dirname(outPath) : outPath;
|
|
137
|
-
// Load baseline bundles for state-based comparison (like git diff)
|
|
138
|
-
//
|
|
202
|
+
// Load baseline bundles for state-based comparison (like git diff).
|
|
203
|
+
// Set on first successful load; also updated after error recovery (full rebuild) so diffs stay meaningful.
|
|
139
204
|
if (!baselineBundles) {
|
|
140
205
|
baselineBundles = await loadAllBundles(outputDir);
|
|
141
206
|
previousBundles = baselineBundles;
|
|
@@ -365,24 +430,42 @@ export async function startWatchMode(options, projectRoot, initialCache = null)
|
|
|
365
430
|
}
|
|
366
431
|
catch (error) {
|
|
367
432
|
const durationMs = Date.now() - startTime;
|
|
368
|
-
const errorMessage = error
|
|
433
|
+
const errorMessage = formatErrorMessage(error);
|
|
369
434
|
if (!options.quiet) {
|
|
370
435
|
console.error(` ❌ Error: ${errorMessage}\n`);
|
|
371
436
|
}
|
|
372
|
-
// Log error to watch logs (only if --log-file flag is set)
|
|
373
437
|
if (options.logFile) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
438
|
+
try {
|
|
439
|
+
const logEntry = {
|
|
440
|
+
timestamp: new Date().toISOString(),
|
|
441
|
+
changedFiles: changedFileList,
|
|
442
|
+
fileCount: changedFileList.length,
|
|
443
|
+
durationMs,
|
|
444
|
+
error: errorMessage,
|
|
445
|
+
};
|
|
446
|
+
await appendWatchLog(projectRoot, logEntry);
|
|
447
|
+
}
|
|
448
|
+
catch (logError) {
|
|
449
|
+
if (!options.quiet) {
|
|
450
|
+
console.warn(` ⚠️ Watch: could not append watch log: ${formatErrorMessage(logError)}`);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
const recovery = await attemptWatchCacheRecovery();
|
|
455
|
+
if (recovery != null) {
|
|
456
|
+
watchCache = recovery.cache;
|
|
457
|
+
baselineBundles = recovery.bundles;
|
|
458
|
+
previousBundles = recovery.bundles;
|
|
459
|
+
if (!options.quiet) {
|
|
460
|
+
console.log(` ✅ Watch cache restored after full rebuild.\n`);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
watchCache = null;
|
|
465
|
+
if (!options.quiet) {
|
|
466
|
+
console.warn(' ⚠️ Each file change will run a full context rebuild until a rebuild succeeds.\n');
|
|
467
|
+
}
|
|
382
468
|
}
|
|
383
|
-
// Fall back to full rebuild on error
|
|
384
|
-
watchCache = null;
|
|
385
|
-
isFirstRun = true;
|
|
386
469
|
}
|
|
387
470
|
};
|
|
388
471
|
// Execute and track the regeneration promise
|
|
@@ -396,7 +479,9 @@ export async function startWatchMode(options, projectRoot, initialCache = null)
|
|
|
396
479
|
clearTimeout(debounceTimer);
|
|
397
480
|
}
|
|
398
481
|
debounceTimer = setTimeout(() => {
|
|
399
|
-
regenerate()
|
|
482
|
+
void regenerate().catch((err) => {
|
|
483
|
+
console.error(` ❌ Watch: unexpected regenerate failure: ${formatErrorMessage(err)}\n`);
|
|
484
|
+
});
|
|
400
485
|
}, DEBOUNCE_DELAY);
|
|
401
486
|
};
|
|
402
487
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchMode.js","sourceRoot":"","sources":["../../../../../src/cli/commands/context/watchMode/watchMode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAKlI,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyC,MAAM,gBAAgB,CAAC;AAChG,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EAEpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAEvE;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAyB,EAAE,UAA+B,EAAE;IACxF,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO;IAE1B,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,IAAI,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,GAAG,cAAc,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB,EAAE,WAAmB,EAAE,eAAkC,IAAI;IACvH,mEAAmE;IACnE,sBAAsB,EAAE,CAAC;IAEzB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEzE,8DAA8D;IAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,IAAI;YACZ,WAAW;YACX,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;SAC1C,CAAC,CAAC;QACH,6FAA6F;QAC7F,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,sDAAuD,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,IAAI,aAAa,GAA0B,IAAI,CAAC;IAChD,IAAI,mBAAmB,GAAyB,IAAI,CAAC,CAAC,gDAAgD;IACtG,IAAI,YAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC1C,IAAI,eAAe,GAA8B,IAAI,CAAC,CAAC,gDAAgD;IACvG,IAAI,eAAe,GAA8B,IAAI,CAAC,CAAC,wCAAwC;IAC/F,IAAI,UAAU,GAAsB,YAAY,CAAC;IACjD,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,kDAAkD;IAE1E,0BAA0B;IAC1B,IAAI,iBAAiB,GAA6B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,CAAC;QACnB,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,qBAAqB,EAAE,CAAC;QACxB,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,CAAC;KACrB,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,oFAAoF;IACpF,MAAM,cAAc,GAAG,GAAG,CAAC;IAE3B,gDAAgD;IAChD,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAA+B,EAAE;QAC9E,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAC3D,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAkD,CAAC;YAEhG,MAAM,UAAU,GAAuB,EAAE,CAAC;YAE1C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;wBACxD,IAAI,CAAC;4BACH,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;4BAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAuB,CAAC;4BACjE,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;wBAC9B,CAAC;wBAAC,MAAM,CAAC;4BACP,8CAA8C;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,oDAAoD;QACpD,sFAAsF;QACtF,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,mBAAmB,CAAC;YAC1B,qDAAqD;YACrD,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,iDAAiD;QACnD,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,+DAA+D;QAC/D,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC;gBACH,6BAA6B;gBAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAEzE,mEAAmE;gBACnE,yEAAyE;gBACzE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,eAAe,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;oBAClD,eAAe,GAAG,eAAe,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;wBACzC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,eAAe,CAAC,MAAM,GAAG,CAAC,QAAQ;wBACxF,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAe,CAAC,MAAM,QAAQ,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;gBACtH,CAAC;gBAED,IAAI,UAA8B,CAAC;gBAEnC,gFAAgF;gBAChF,IAAI,UAAU,EAAE,CAAC;oBACf,sDAAsD;oBACtD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC3F,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;oBAE5B,mCAAmC;oBACnC,MAAM,eAAe,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;oBACzD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;oBACzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;wBAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;wBAC5D,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BACzG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;oBAED,+CAA+C;oBAC/C,oFAAoF;oBACpF,mEAAmE;oBACnE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;wBACtG,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;oBAEH,yDAAyD;oBACzD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,MAAM,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE;wBAC5H,KAAK,EAAE,IAAI;wBACX,wBAAwB,EAAE,IAAI;qBAC/B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,4EAA4E;oBAC5E,MAAM,iBAAiB,GAAmB;wBACxC,GAAG,OAAO;wBACV,KAAK,EAAE,KAAK;wBACZ,aAAa,EAAE,KAAK;wBACpB,KAAK,EAAE,IAAI;wBACX,wBAAwB,EAAE,IAAI;qBAC/B,CAAC;oBAEF,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC;oBAExC,oCAAoC;oBACpC,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;oBAE7C,gDAAgD;oBAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,8DAA8D;wBAC9D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC3C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;wBACvD,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBACvG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,WAAW,EAAE;4BAC9E,YAAY,EAAE,OAAO,CAAC,YAAY;4BAClC,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;4BACxC,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;wBACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;wBACjD,UAAU,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBACvG,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC1C,gEAAgE;gBAChE,yFAAyF;gBACzF,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;oBAC3D,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC;gBAET,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC1I,WAAW,CAAC,eAAgB,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;oBACvG,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAClC,CAAC;gBAED,sFAAsF;gBACtF,eAAe,GAAG,UAAU,CAAC;gBAE7B,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAE,CAAC;oBAC7C,MAAM,UAAU,GAAG,OAAO,IAAI,CAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;wBACxB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBAC1B,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CACjC,CAAC;oBAEF,+DAA+D;oBAC/D,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;oBACtE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,IAAI,CAAC,CAAC;oBAC1E,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,CAAC,IAAI,sBAAsB,GAAG,CAAC,CAAC;oBAEnF,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;wBAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;wBAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;wBAElE,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;wBAEtC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,uGAAuG;4BACvG,MAAM,cAAc,GAAG,CAAC,mBAAmB,CAAC;4BAC5C,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,IAAI,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC;4BAEjH,IAAI,cAAc,IAAI,uBAAuB,EAAE,CAAC;gCAC9C,qEAAqE;gCACrE,IAAI,cAAc,EAAE,CAAC;oCACnB,mDAAmD;oCACnD,iBAAiB,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,CAAC;oCACvD,iBAAiB,CAAC,qBAAqB,IAAI,QAAQ,CAAC,MAAM,CAAC;gCAC7D,CAAC;qCAAM,CAAC;oCACN,iDAAiD;oCACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC;oCACpE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAAC;oCAC1E,iBAAiB,CAAC,mBAAmB,IAAI,SAAS,CAAC;oCACnD,iBAAiB,CAAC,qBAAqB,IAAI,WAAW,CAAC;gCACzD,CAAC;4BACH,CAAC;4BAED,4DAA4D;4BAC5D,iBAAiB,CAAC,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC;4BAC3D,iBAAiB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;4BACnD,iBAAiB,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAEvD,2BAA2B;4BAC3B,iBAAiB,CAAC,SAAS,GAAG;gCAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACnC,eAAe,EAAE,UAAU,CAAC,MAAM;gCAClC,MAAM,EAAE,MAAM,CAAC,MAAM;gCACrB,QAAQ,EAAE,QAAQ,CAAC,MAAM;gCACzB,UAAU;gCACV,YAAY,EAAE,eAAe;6BAC9B,CAAC;4BAEF,yDAAyD;4BACzD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gCACnB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,KAAK,oBAAoB,IAAI,QAAQ,CAAC,MAAM,KAAK,sBAAsB,CAAC;gCAC3G,IAAI,aAAa,EAAE,CAAC;oCAClB,IAAI,cAAc,IAAI,uBAAuB,EAAE,CAAC;wCAC9C,+EAA+E;wCAC/E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;wCAC9C,CAAC;6CAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CAC/B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;wCACxC,CAAC;oCACH,CAAC;oCACD,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;oCACxD,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gCACpE,CAAC;4BACH,CAAC;4BAED,yCAAyC;4BACzC,MAAM,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;wBAC/D,CAAC;6BAAM,CAAC;4BACN,6DAA6D;4BAC7D,IAAI,mBAAmB,EAAE,CAAC;gCACxB,iBAAiB,CAAC,aAAa,EAAE,CAAC;4BACpC,CAAC;4BAED,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,CAAC;4BAC3C,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;4BACvC,iBAAiB,CAAC,kBAAkB,GAAG,CAAC,CAAC;4BACzC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;4BAExC,wCAAwC;4BACxC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;gCAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gCACtC,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;4BACpE,CAAC;4BAED,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBAC7C,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,+DAA+D;wBAC/D,IAAI,mBAAmB,EAAE,CAAC;4BACxB,iBAAiB,CAAC,aAAa,EAAE,CAAC;wBACpC,CAAC;wBAED,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC3C,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC;wBACvC,iBAAiB,CAAC,kBAAkB,GAAG,CAAC,CAAC;wBACzC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;wBAExC,wCAAwC;wBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;4BAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;4BACtC,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;wBACpE,CAAC;wBAED,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAED,sEAAsE;gBACtE,uDAAuD;gBACvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,QAAQ,GAAkB;4BAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,YAAY,EAAE,eAAe;4BAC7B,SAAS,EAAE,eAAe,CAAC,MAAM;4BACjC,UAAU;4BACV,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC3C,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;gCACrC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;gCAC7B,YAAY,EAAE,CAAC,CAAC,YAAY;gCAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;6BACrB,CAAC,CAAC;4BACH,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC/C,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;6BAC/C,CAAC,CAAC;4BACH,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;4BACpE,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;4BAC1E,OAAO,EAAE;gCACP,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gCAC9C,oBAAoB,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;gCAClD,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gCACzC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;6BAC9C;yBACF,CAAC;wBACF,MAAM,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC9C,CAAC;yBAAM,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,yEAAyE;wBACzE,MAAM,QAAQ,GAAkB;4BAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,YAAY,EAAE,eAAe;4BAC7B,SAAS,EAAE,eAAe,CAAC,MAAM;4BACjC,UAAU;yBACX,CAAC;wBACF,MAAM,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC1C,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,CAAC;gBAE9C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,CAAC,KAAK,CAAC,eAAe,YAAY,IAAI,CAAC,CAAC;gBACjD,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAkB;wBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,YAAY,EAAE,eAAe;wBAC7B,SAAS,EAAE,eAAe,CAAC,MAAM;wBACjC,UAAU;wBACV,KAAK,EAAE,YAAY;qBACpB,CAAC;oBACF,MAAM,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAED,qCAAqC;gBACrC,UAAU,GAAG,IAAI,CAAC;gBAClB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;QACD,CAAC,CAAC;QAEF,6CAA6C;QAC7C,mBAAmB,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChD,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,MAAM,mBAAmB,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,UAAU,EAAE,CAAC;QACf,CAAC,EAAE,cAAc,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,sDAAsD;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,mBAAmB,KAAK,WAAW,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,iCAAiC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACpF,CAAC;QAED,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,OAAO,CAAC,YAAY;YAC5C,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;YACjE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,2BAA2B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,kDAAkD;QAClD,gEAAgE;QAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1C,OAAO,EAAE;gBACP,gCAAgC;gBAChC,gBAAgB;gBAChB,qBAAqB;gBACrB,8BAA8B;gBAC9B,yDAAyD;gBACzD,GAAG,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxH,6CAA6C;gBAC7C,cAAc;gBACd,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,UAAU;aACX;YACD,aAAa,EAAE,IAAI,EAAE,gCAAgC;YACrD,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,GAAG,EAAE,uCAAuC;gBAChE,YAAY,EAAE,GAAG,EAAE,6CAA6C;aACjE;YACD,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,EAAE,EAAE,eAAe;SAC3B,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAW,EAAE;YAClD,4BAA4B;YAC5B,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEpD,yDAAyD;YACzD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,oCAAoC;YACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yCAAyC;YACzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5E,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,SAAsC,EAAE,EAAE;YAClF,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,0CAA0C;gBAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrE,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAEjC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC9C,wDAAwD;oBACxD,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC,CAAC;gBACjI,CAAC;gBAED,mBAAmB,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,sBAAsB;QACtB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACpC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACjC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACpC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAC3C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;YAChD,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,wEAAwE;QACxE,eAAe,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YACvC,yBAAyB;YACzB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAEvC,IAAI,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAE,CAAC;oBAC7C,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;oBAC9D,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,IAAI,CAAC,CAAC;oBAClE,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;oBAElD,2BAA2B;oBAC3B,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,MAAc,EAAE,EAAE,CACpE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;oBAElC,uDAAuD;oBACvD,IAAI,KAAa,CAAC;oBAClB,IAAI,OAAe,CAAC;oBAEpB,IAAI,YAAY,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;wBAC/C,KAAK,GAAG,GAAG,CAAC;wBACZ,OAAO,GAAG,wDAAwD,CAAC;oBACrE,CAAC;yBAAM,IAAI,YAAY,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;wBACpD,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,GAAG,mCAAmC,cAAc,IAAI,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC;oBAC7H,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,GAAG,CAAC;wBACZ,MAAM,KAAK,GAAa,EAAE,CAAC;wBAC3B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;4BACrB,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAC9E,CAAC;wBACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;4BACvB,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;wBACtF,CAAC;wBACD,OAAO,GAAG,mCAAmC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC3E,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;oBAErC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBAChF,OAAO,CAAC,GAAG,CAAC,6BAA6B,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC;oBACpF,OAAO,CAAC,GAAG,CAAC,4BAA4B,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC3E,OAAO,CAAC,GAAG,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;oBAEvD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,oBAAoB,KAAK,CAAC,EAAE,CAAC;gBAC/F,IAAI,CAAC;oBACH,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,+BAA+B;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iFAAiF;QAExF,kCAAkC;QAClC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,wCAAwC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"watchMode.js","sourceRoot":"","sources":["../../../../../src/cli/commands/context/watchMode/watchMode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretDetector.d.ts","sourceRoot":"","sources":["../../src/utils/secretDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"secretDetector.d.ts","sourceRoot":"","sources":["../../src/utils/secretDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACrC;AAyFD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,WAAW,EAAE,CAoCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAyB1E"}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* Simple secret detection utilities
|
|
3
3
|
* Detects common patterns for API keys, tokens, passwords, etc.
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Maximum line length to scan.
|
|
7
|
+
* Skips very long lines to avoid slow regex processing and performance issues.
|
|
8
|
+
* Legitimate secrets are unlikely to appear on extremely long lines.
|
|
9
|
+
*/
|
|
10
|
+
const MAX_LINE_LENGTH = 1000;
|
|
5
11
|
/**
|
|
6
12
|
* Common secret patterns to detect
|
|
7
13
|
*/
|
|
@@ -9,7 +15,7 @@ const SECRET_PATTERNS = [
|
|
|
9
15
|
// API Keys
|
|
10
16
|
{
|
|
11
17
|
name: 'API Key',
|
|
12
|
-
pattern: /['"`]?
|
|
18
|
+
pattern: /['"`]?api[_-]?key['"`]?\s*[=:]\s*['"`]?([a-zA-Z0-9_\-]{20,})['"`]?/i,
|
|
13
19
|
severity: 'high',
|
|
14
20
|
},
|
|
15
21
|
// AWS Access Keys
|
|
@@ -74,13 +80,13 @@ const SECRET_PATTERNS = [
|
|
|
74
80
|
// JWT Secrets
|
|
75
81
|
{
|
|
76
82
|
name: 'JWT Secret',
|
|
77
|
-
pattern: /['"`]?
|
|
83
|
+
pattern: /['"`]?jwt[_-]?(?:secret|key)['"`]?\s*[=:]\s*['"`]?([a-zA-Z0-9_\-]{16,})['"`]?/i,
|
|
78
84
|
severity: 'high',
|
|
79
85
|
},
|
|
80
86
|
// Generic secrets
|
|
81
87
|
{
|
|
82
88
|
name: 'Secret',
|
|
83
|
-
pattern: /['"`]?(?:
|
|
89
|
+
pattern: /['"`]?secret(?:[_-]?key)?['"`]?\s*[=:]\s*['"`]?([a-zA-Z0-9_\-]{16,})['"`]?/i,
|
|
84
90
|
severity: 'medium',
|
|
85
91
|
},
|
|
86
92
|
];
|
|
@@ -92,10 +98,15 @@ export function scanFileForSecrets(filePath, content) {
|
|
|
92
98
|
const lines = content.split('\n');
|
|
93
99
|
for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
|
|
94
100
|
const line = lines[lineIndex];
|
|
101
|
+
// Skip very long lines to prevent ReDoS attacks
|
|
102
|
+
if (line.length > MAX_LINE_LENGTH) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
95
105
|
for (const { name, pattern, severity } of SECRET_PATTERNS) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
106
|
+
// Reset lastIndex for safety (future-proofs if global flags are added)
|
|
107
|
+
pattern.lastIndex = 0;
|
|
108
|
+
const match = pattern.exec(line);
|
|
109
|
+
if (match) {
|
|
99
110
|
// Extract snippet (first 100 chars around match)
|
|
100
111
|
const matchStart = Math.max(0, match.index - 20);
|
|
101
112
|
const matchEnd = Math.min(line.length, match.index + match[0].length + 20);
|
|
@@ -108,10 +119,6 @@ export function scanFileForSecrets(filePath, content) {
|
|
|
108
119
|
snippet,
|
|
109
120
|
severity,
|
|
110
121
|
});
|
|
111
|
-
// Prevent infinite loops
|
|
112
|
-
if (!pattern.global) {
|
|
113
|
-
break;
|
|
114
|
-
}
|
|
115
122
|
}
|
|
116
123
|
}
|
|
117
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretDetector.js","sourceRoot":"","sources":["../../src/utils/secretDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"secretDetector.js","sourceRoot":"","sources":["../../src/utils/secretDetector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "logicstamp-context",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "The context compiler for TypeScript. Compile your codebase into deterministic architectural contracts and dependency graphs for AI coding workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|