@beignet/cli 0.0.49 → 0.0.50
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/CHANGELOG.md +20 -0
- package/README.md +41 -1
- package/dist/analysis/workspace.d.ts +1 -0
- package/dist/analysis/workspace.d.ts.map +1 -1
- package/dist/analysis/workspace.js +20 -10
- package/dist/analysis/workspace.js.map +1 -1
- package/dist/app-map-changes.d.ts +103 -0
- package/dist/app-map-changes.d.ts.map +1 -0
- package/dist/app-map-changes.js +949 -0
- package/dist/app-map-changes.js.map +1 -0
- package/dist/git-changes.d.ts +30 -0
- package/dist/git-changes.d.ts.map +1 -0
- package/dist/git-changes.js +367 -0
- package/dist/git-changes.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/inspect.js +291 -18
- package/dist/inspect.js.map +1 -1
- package/dist/lib.d.ts +3 -0
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/make/shared.d.ts.map +1 -1
- package/dist/make/shared.js +31 -27
- package/dist/make/shared.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +24 -2
- package/dist/mcp.js.map +1 -1
- package/dist/templates/agents.d.ts.map +1 -1
- package/dist/templates/agents.js +21 -1
- package/dist/templates/agents.js.map +1 -1
- package/dist/templates/base.d.ts.map +1 -1
- package/dist/templates/base.js +4 -1
- package/dist/templates/base.js.map +1 -1
- package/package.json +2 -2
- package/skills/app-structure/SKILL.md +25 -2
- package/src/analysis/workspace.ts +25 -9
- package/src/app-map-changes.ts +1462 -0
- package/src/git-changes.ts +511 -0
- package/src/index.ts +39 -1
- package/src/inspect.ts +422 -23
- package/src/lib.ts +21 -0
- package/src/make/shared.ts +31 -27
- package/src/mcp.ts +32 -2
- package/src/templates/agents.ts +21 -1
- package/src/templates/base.ts +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @beignet/cli
|
|
2
2
|
|
|
3
|
+
## 0.0.50
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6fe026a: Expose event-subscription readiness and asynchronous cleanup, await listener
|
|
8
|
+
registries during provider startup with bounded rollback, diagnose unsafe app
|
|
9
|
+
wiring, and make Redis subscription lifecycle failures observable with bounded
|
|
10
|
+
provider shutdown and recoverable channel state.
|
|
11
|
+
- 4be4573: Keep mail content out of provider instrumentation, document the Redis
|
|
12
|
+
deployment policy required for monotonic fencing, and align generated agent
|
|
13
|
+
guidance with optional seed, worker, and migration paths.
|
|
14
|
+
- 2ec5545: Map local Git changes to bounded, source-backed Beignet concepts through the
|
|
15
|
+
CLI, library API, and MCP server.
|
|
16
|
+
- Updated dependencies [6fe026a]
|
|
17
|
+
- Updated dependencies [4be4573]
|
|
18
|
+
- Updated dependencies [ee402a9]
|
|
19
|
+
- Updated dependencies [d1db53e]
|
|
20
|
+
- Updated dependencies [7b0961b]
|
|
21
|
+
- @beignet/core@0.0.50
|
|
22
|
+
|
|
3
23
|
## 0.0.49
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -816,6 +816,9 @@ Generators wire the provider-backed ports their output depends on. `make
|
|
|
816
816
|
event` (and `make resource --events`) wires `eventBus: EventBusPort` with
|
|
817
817
|
`createMemoryEventBusProvider()` from
|
|
818
818
|
`@beignet/provider-event-bus-memory`, including the package dependency.
|
|
819
|
+
Listener generation also installs provider lifecycle wiring that registers the
|
|
820
|
+
central listener registry in `start()`, waits for its initial readiness with
|
|
821
|
+
the default 10-second registry deadline, and awaits cleanup in `stop()`.
|
|
819
822
|
`make notification` wires `mailer: MailerPort` with
|
|
820
823
|
`createMemoryMailerProvider()` and `notifications: NotificationPort` with
|
|
821
824
|
`createInlineNotificationsProvider()`, both dev-default providers from
|
|
@@ -1047,6 +1050,8 @@ Build a deterministic, source-backed graph of the app:
|
|
|
1047
1050
|
beignet map
|
|
1048
1051
|
beignet map --feature issues
|
|
1049
1052
|
beignet map --json --kind route,use-case,event,listener
|
|
1053
|
+
beignet map --changed
|
|
1054
|
+
beignet map --changed --base origin/main --json
|
|
1050
1055
|
```
|
|
1051
1056
|
|
|
1052
1057
|
The human view summarizes contracts, use cases, workflows, ports, UI, and tests
|
|
@@ -1071,6 +1076,36 @@ accepts one or a comma-separated list of node kinds. These projections make
|
|
|
1071
1076
|
the same full graph practical for coding-agent context windows. The command is
|
|
1072
1077
|
report-only and does not fail because doctor or lint findings are present.
|
|
1073
1078
|
|
|
1079
|
+
`--changed` maps the current Git change set to potentially affected concepts.
|
|
1080
|
+
Without `--base`, it preserves staged index changes, unstaged worktree changes,
|
|
1081
|
+
and untracked files instead of collapsing them into one net diff against
|
|
1082
|
+
`HEAD`. With `--base <ref>`, it also includes committed branch changes from the
|
|
1083
|
+
merge base of that already-local ref through `HEAD`; Beignet never fetches the
|
|
1084
|
+
ref. The bounded report distinguishes direct source changes, reverse local
|
|
1085
|
+
imports, one-hop semantic consumers, related members of directly changed
|
|
1086
|
+
containers, and feature ownership context. Governing configuration and changed
|
|
1087
|
+
direct local workspace dependencies are marked app-wide. Recognized guide
|
|
1088
|
+
files such as `README.md`, `AGENTS.md`, and `CLAUDE.md`, plus Markdown or text
|
|
1089
|
+
files under a root `docs/` or `documentation/` directory, remain non-impacting.
|
|
1090
|
+
Other `.mdx` and `.txt` paths remain application changes. Deleted declarations,
|
|
1091
|
+
unresolved imports, changed files with no mapped concept, and other
|
|
1092
|
+
static-analysis blind spots remain visible as gaps.
|
|
1093
|
+
Changed-file paths and gap paths are repository-relative; app-map node sources
|
|
1094
|
+
and source evidence remain relative to the selected app root.
|
|
1095
|
+
|
|
1096
|
+
Changed mapping explains potential impact; it does not run checks or claim
|
|
1097
|
+
that a change is correct. Use `beignet check` after inspecting the report.
|
|
1098
|
+
`--changed` cannot be combined with `--feature` or `--kind`, and `--base`
|
|
1099
|
+
requires `--changed`.
|
|
1100
|
+
|
|
1101
|
+
The same report is available to library callers:
|
|
1102
|
+
|
|
1103
|
+
```ts
|
|
1104
|
+
import { mapAppChanges } from "@beignet/cli";
|
|
1105
|
+
|
|
1106
|
+
const impact = await mapAppChanges({ cwd: "apps/api", base: "origin/main" });
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1074
1109
|
## Explain mapped app concepts
|
|
1075
1110
|
|
|
1076
1111
|
Resolve one app-map target into deterministic, source-backed context:
|
|
@@ -1245,6 +1280,8 @@ Today it detects:
|
|
|
1245
1280
|
application port
|
|
1246
1281
|
- Feature listeners missing from `server/listeners.ts` or otherwise not
|
|
1247
1282
|
referenced by `registerListeners(...)`
|
|
1283
|
+
- Listener wiring that does not register in `start()`, await initial readiness,
|
|
1284
|
+
and await asynchronous cleanup in `stop()`
|
|
1248
1285
|
- Opted-in runtime manifests that omit generated workflow registries
|
|
1249
1286
|
- Next.js route handlers that do not map to known contracts
|
|
1250
1287
|
- OpenAPI drift in direct arrays, exported contract lists, and
|
|
@@ -1420,7 +1457,10 @@ Resources:
|
|
|
1420
1457
|
Tools:
|
|
1421
1458
|
|
|
1422
1459
|
- `app_map` - project the source-backed app graph by optional `feature`,
|
|
1423
|
-
`kinds`, and `includeDiagnostics` inputs
|
|
1460
|
+
`kinds`, and `includeDiagnostics` inputs, or pass
|
|
1461
|
+
`{ changed: true, base?: "origin/main" }` for the same bounded report as
|
|
1462
|
+
`beignet map --changed --json` (read-only). Changed mode rejects projection
|
|
1463
|
+
and diagnostic inputs
|
|
1424
1464
|
- `explain` - explain any source-backed mapped concept or diagnostic with
|
|
1425
1465
|
`{ kind, target }`, returning relationships, conventions, findings,
|
|
1426
1466
|
suggested files, and follow-up commands (read-only)
|
|
@@ -6,6 +6,7 @@ export type AnalysisWorkspace = {
|
|
|
6
6
|
fileSet: Set<string>;
|
|
7
7
|
config: ResolvedBeignetConfig;
|
|
8
8
|
compilerOptions: ts.CompilerOptions;
|
|
9
|
+
compilerConfigFiles: string[];
|
|
9
10
|
moduleResolutionCache: ts.ModuleResolutionCache;
|
|
10
11
|
readSource(file: string): Promise<string>;
|
|
11
12
|
readSourceFile(file: string): Promise<ts.SourceFile>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,qBAAqB,EAE3B,MAAM,cAAc,CAAC;AAWtB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAChD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,GAAG,SAAgB,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,qBAAqB,EAE3B,MAAM,cAAc,CAAC;AAWtB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAChD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,GAAG,SAAgB,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CA2CpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CA4CT"}
|
|
@@ -18,7 +18,7 @@ export async function createAnalysisWorkspace(cwd = process.cwd(), options = {})
|
|
|
18
18
|
const config = options.config
|
|
19
19
|
? resolveConfig(options.config)
|
|
20
20
|
: await loadBeignetConfig(targetDir, files);
|
|
21
|
-
const compilerOptions =
|
|
21
|
+
const { compilerConfigFiles, compilerOptions } = resolveCompilerConfiguration(targetDir);
|
|
22
22
|
const moduleResolutionCache = ts.createModuleResolutionCache(targetDir, ts.sys.useCaseSensitiveFileNames
|
|
23
23
|
? (fileName) => fileName
|
|
24
24
|
: (fileName) => fileName.toLowerCase(), compilerOptions);
|
|
@@ -38,6 +38,7 @@ export async function createAnalysisWorkspace(cwd = process.cwd(), options = {})
|
|
|
38
38
|
fileSet,
|
|
39
39
|
config,
|
|
40
40
|
compilerOptions,
|
|
41
|
+
compilerConfigFiles,
|
|
41
42
|
moduleResolutionCache,
|
|
42
43
|
readSource,
|
|
43
44
|
async readSourceFile(file) {
|
|
@@ -175,19 +176,28 @@ function modulePatternWildcard(pattern, importPath) {
|
|
|
175
176
|
}
|
|
176
177
|
return importPath.slice(prefix.length, importPath.length - suffix.length);
|
|
177
178
|
}
|
|
178
|
-
function
|
|
179
|
-
const
|
|
179
|
+
function resolveCompilerConfiguration(targetDir) {
|
|
180
|
+
const compilerConfigFiles = new Set();
|
|
181
|
+
const configPath = path.join(targetDir, "tsconfig.json");
|
|
182
|
+
const compilerOptions = ts.getParsedCommandLineOfConfigFile(configPath, {}, {
|
|
180
183
|
...ts.sys,
|
|
184
|
+
readFile(file) {
|
|
185
|
+
compilerConfigFiles.add(path.resolve(file));
|
|
186
|
+
return ts.sys.readFile(file);
|
|
187
|
+
},
|
|
181
188
|
onUnRecoverableConfigFileDiagnostic: () => { },
|
|
182
189
|
})?.options ?? {};
|
|
183
|
-
if (compilerOptions.paths)
|
|
184
|
-
return compilerOptions;
|
|
185
190
|
return {
|
|
186
|
-
...
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
+
compilerConfigFiles: [...compilerConfigFiles].sort(),
|
|
192
|
+
compilerOptions: compilerOptions.paths
|
|
193
|
+
? compilerOptions
|
|
194
|
+
: {
|
|
195
|
+
...compilerOptions,
|
|
196
|
+
baseUrl: compilerOptions.baseUrl ?? targetDir,
|
|
197
|
+
paths: {
|
|
198
|
+
"@/*": ["*"],
|
|
199
|
+
},
|
|
200
|
+
},
|
|
191
201
|
};
|
|
192
202
|
}
|
|
193
203
|
function compilerPathsBase(compilerOptions, targetDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAEL,iBAAiB,EACjB,aAAa,EAEb,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,cAAc;CACf,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type AppMapEdge, type AppMapEdgeKind, type AppMapNode } from "./app-map.js";
|
|
2
|
+
import { type GitChangeComparison, type GitChangedFileStatus } from "./git-changes.js";
|
|
3
|
+
/** Relationship between one changed repository file and the selected app. */
|
|
4
|
+
export type AppChangeFileScope = "app" | "governing" | "outside" | "workspace-dependency";
|
|
5
|
+
/** One Git change classified relative to the selected Beignet app. */
|
|
6
|
+
export type AppChangedFile = {
|
|
7
|
+
status: GitChangedFileStatus;
|
|
8
|
+
path: string;
|
|
9
|
+
oldPath?: string;
|
|
10
|
+
scope: AppChangeFileScope;
|
|
11
|
+
};
|
|
12
|
+
/** Why one mapped concept appears in a changed-app report. */
|
|
13
|
+
export type AppChangeImpact = "app-wide" | "consumer" | "context" | "direct" | "related";
|
|
14
|
+
/** Source-backed reason connecting a Git change to one mapped concept. */
|
|
15
|
+
export type AppChangeReason = {
|
|
16
|
+
kind: "app-wide" | "import" | "ownership" | "relationship" | "source";
|
|
17
|
+
changedFile: string;
|
|
18
|
+
message: string;
|
|
19
|
+
evidence?: {
|
|
20
|
+
file: string;
|
|
21
|
+
line?: number;
|
|
22
|
+
column?: number;
|
|
23
|
+
confidence: "exact" | "partial";
|
|
24
|
+
};
|
|
25
|
+
relationship?: {
|
|
26
|
+
kind: AppMapEdgeKind;
|
|
27
|
+
from: string;
|
|
28
|
+
to: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
/** App-map node annotated with its strongest change-impact classification. */
|
|
32
|
+
export type AppChangeImpactedNode = AppMapNode & {
|
|
33
|
+
impact: AppChangeImpact;
|
|
34
|
+
reasons: AppChangeReason[];
|
|
35
|
+
reasonCount: number;
|
|
36
|
+
reasonsTruncated: boolean;
|
|
37
|
+
};
|
|
38
|
+
/** App-map edge used as semantic change-impact evidence. */
|
|
39
|
+
export type AppChangeRelationship = AppMapEdge & {
|
|
40
|
+
impact: "consumer" | "related";
|
|
41
|
+
};
|
|
42
|
+
/** Static-analysis blind spot retained in a changed-app report. */
|
|
43
|
+
export type AppChangeGap = {
|
|
44
|
+
code: string;
|
|
45
|
+
message: string;
|
|
46
|
+
/** Repository-relative file associated with this gap. */
|
|
47
|
+
file?: string;
|
|
48
|
+
};
|
|
49
|
+
/** Deterministically bounded report section with complete item counts. */
|
|
50
|
+
export type BoundedAppChangeSection<T> = {
|
|
51
|
+
items: T[];
|
|
52
|
+
returned: number;
|
|
53
|
+
total: number;
|
|
54
|
+
truncated: boolean;
|
|
55
|
+
};
|
|
56
|
+
/** Bounded gap examples plus exhaustive counts for every gap code. */
|
|
57
|
+
export type BoundedAppChangeGapSection = BoundedAppChangeSection<AppChangeGap> & {
|
|
58
|
+
countsByCode: Record<string, number>;
|
|
59
|
+
};
|
|
60
|
+
/** Version 1 report mapping a Git change set to Beignet application concepts. */
|
|
61
|
+
export type AppChangeImpactResult = {
|
|
62
|
+
schemaVersion: 1;
|
|
63
|
+
targetDir: string;
|
|
64
|
+
repository: {
|
|
65
|
+
root: string;
|
|
66
|
+
workspaceRoot?: string;
|
|
67
|
+
comparison: GitChangeComparison;
|
|
68
|
+
repositoryChangeHash: string;
|
|
69
|
+
scopedChangeHash: string;
|
|
70
|
+
};
|
|
71
|
+
classification: {
|
|
72
|
+
appWide: boolean;
|
|
73
|
+
docsOnly: boolean;
|
|
74
|
+
};
|
|
75
|
+
summary: {
|
|
76
|
+
changedFiles: number;
|
|
77
|
+
scopedChangedFiles: number;
|
|
78
|
+
outsideChangedFiles: number;
|
|
79
|
+
impactedFeatures: number;
|
|
80
|
+
impactedNodes: number;
|
|
81
|
+
direct: number;
|
|
82
|
+
consumers: number;
|
|
83
|
+
related: number;
|
|
84
|
+
contexts: number;
|
|
85
|
+
appWide: number;
|
|
86
|
+
relationships: number;
|
|
87
|
+
gaps: number;
|
|
88
|
+
};
|
|
89
|
+
changedFiles: BoundedAppChangeSection<AppChangedFile>;
|
|
90
|
+
impactedNodes: BoundedAppChangeSection<AppChangeImpactedNode>;
|
|
91
|
+
relationships: BoundedAppChangeSection<AppChangeRelationship>;
|
|
92
|
+
gaps: BoundedAppChangeGapSection;
|
|
93
|
+
};
|
|
94
|
+
/** Options for mapping the current Git change set. */
|
|
95
|
+
export type AppMapChangesOptions = {
|
|
96
|
+
cwd?: string;
|
|
97
|
+
base?: string;
|
|
98
|
+
};
|
|
99
|
+
/** Map the current Git change set to bounded, source-backed Beignet concepts. */
|
|
100
|
+
export declare function mapAppChanges(options?: AppMapChangesOptions): Promise<AppChangeImpactResult>;
|
|
101
|
+
/** Format the report-only changed app map for a terminal. */
|
|
102
|
+
export declare function formatAppChangeImpact(result: AppChangeImpactResult): string;
|
|
103
|
+
//# sourceMappingURL=app-map-changes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-map-changes.d.ts","sourceRoot":"","sources":["../src/app-map-changes.ts"],"names":[],"mappings":"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"}
|