@indy2kro/agentenv 1.0.1 → 1.0.2
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/dist/adapters/agent-dirs.d.ts +29 -0
- package/dist/adapters/agent-dirs.d.ts.map +1 -0
- package/dist/adapters/agent-dirs.js +46 -0
- package/dist/adapters/agent-dirs.js.map +1 -0
- package/dist/adapters/base.d.ts +7 -1
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +18 -10
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/cline.d.ts.map +1 -1
- package/dist/adapters/cline.js +2 -2
- package/dist/adapters/cline.js.map +1 -1
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +3 -2
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/copilot.d.ts.map +1 -1
- package/dist/adapters/copilot.js +3 -4
- package/dist/adapters/copilot.js.map +1 -1
- package/dist/adapters/cursor.d.ts.map +1 -1
- package/dist/adapters/cursor.js +7 -6
- package/dist/adapters/cursor.js.map +1 -1
- package/dist/adapters/detect.d.ts.map +1 -1
- package/dist/adapters/detect.js +1 -0
- package/dist/adapters/detect.js.map +1 -1
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +2 -2
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/opencode.d.ts.map +1 -1
- package/dist/adapters/opencode.js +2 -2
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/rtk-delegation.d.ts.map +1 -1
- package/dist/adapters/rtk-delegation.js +16 -1
- package/dist/adapters/rtk-delegation.js.map +1 -1
- package/dist/adapters/vibe.d.ts.map +1 -1
- package/dist/adapters/vibe.js +2 -2
- package/dist/adapters/vibe.js.map +1 -1
- package/dist/adapters/windsurf.d.ts.map +1 -1
- package/dist/adapters/windsurf.js +2 -2
- package/dist/adapters/windsurf.js.map +1 -1
- package/dist/cli/exit.d.ts +17 -6
- package/dist/cli/exit.d.ts.map +1 -1
- package/dist/cli/exit.js +17 -7
- package/dist/cli/exit.js.map +1 -1
- package/dist/commands/apply.d.ts +77 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +202 -27
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/config-edit.d.ts +33 -0
- package/dist/commands/config-edit.d.ts.map +1 -0
- package/dist/commands/config-edit.js +216 -0
- package/dist/commands/config-edit.js.map +1 -0
- package/dist/commands/doctor.d.ts +41 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +135 -52
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/setup.d.ts +4 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +58 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +40 -16
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts +78 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +329 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +51 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +172 -71
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/wizard.d.ts +27 -1
- package/dist/commands/wizard.d.ts.map +1 -1
- package/dist/commands/wizard.js +48 -31
- package/dist/commands/wizard.js.map +1 -1
- package/dist/config/schema.d.ts +28 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +206 -54
- package/dist/config/schema.js.map +1 -1
- package/dist/config/scopes.d.ts +4 -2
- package/dist/config/scopes.d.ts.map +1 -1
- package/dist/config/scopes.js +23 -4
- package/dist/config/scopes.js.map +1 -1
- package/dist/generate/agentsmd.d.ts +54 -0
- package/dist/generate/agentsmd.d.ts.map +1 -1
- package/dist/generate/agentsmd.js +222 -143
- package/dist/generate/agentsmd.js.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/render.d.ts.map +1 -1
- package/dist/integrations/render.js +25 -10
- package/dist/integrations/render.js.map +1 -1
- package/dist/integrations/superpowers.d.ts.map +1 -1
- package/dist/integrations/superpowers.js +2 -0
- package/dist/integrations/superpowers.js.map +1 -1
- package/dist/shell/detector.d.ts +22 -2
- package/dist/shell/detector.d.ts.map +1 -1
- package/dist/shell/detector.js +122 -34
- package/dist/shell/detector.js.map +1 -1
- package/dist/toolchain/gh.d.ts.map +1 -1
- package/dist/toolchain/gh.js +1 -0
- package/dist/toolchain/gh.js.map +1 -1
- package/dist/toolchain/mise.d.ts +7 -0
- package/dist/toolchain/mise.d.ts.map +1 -1
- package/dist/toolchain/mise.js +20 -3
- package/dist/toolchain/mise.js.map +1 -1
- package/dist/toolchain/rtk.d.ts +71 -3
- package/dist/toolchain/rtk.d.ts.map +1 -1
- package/dist/toolchain/rtk.js +115 -7
- package/dist/toolchain/rtk.js.map +1 -1
- package/dist/ui/output.d.ts.map +1 -1
- package/dist/ui/output.js +10 -2
- package/dist/ui/output.js.map +1 -1
- package/dist/ui/spinner.d.ts +15 -3
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +52 -4
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/theme.d.ts +27 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +73 -8
- package/dist/ui/theme.js.map +1 -1
- package/dist/utils/fs-retry.d.ts +16 -0
- package/dist/utils/fs-retry.d.ts.map +1 -1
- package/dist/utils/fs-retry.js +28 -0
- package/dist/utils/fs-retry.js.map +1 -1
- package/package.json +2 -1
|
@@ -40,6 +40,26 @@ export declare function saveGeneratedFiles(files: GeneratedFile[]): {
|
|
|
40
40
|
error: string;
|
|
41
41
|
}>;
|
|
42
42
|
};
|
|
43
|
+
export type MarkerUpdatePlan = {
|
|
44
|
+
status: 'create';
|
|
45
|
+
content: string;
|
|
46
|
+
} | {
|
|
47
|
+
status: 'update';
|
|
48
|
+
content: string;
|
|
49
|
+
backupFirst: boolean;
|
|
50
|
+
} | {
|
|
51
|
+
status: 'unchanged';
|
|
52
|
+
} | {
|
|
53
|
+
status: 'error';
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Decide what updateWithMarkers() would do to `filePath`, without writing
|
|
58
|
+
* anything (it still reads the existing file, if any). The single source of
|
|
59
|
+
* truth for both the real write and `apply --dry-run`'s preview (FEAT-06),
|
|
60
|
+
* so they can never disagree about what counts as a change.
|
|
61
|
+
*/
|
|
62
|
+
export declare function planMarkerUpdate(filePath: string, newContent: string, markerStart: string, markerEnd: string): MarkerUpdatePlan;
|
|
43
63
|
/**
|
|
44
64
|
* Update existing AGENTS.md/CLAUDE.md with new content, preserving user additions
|
|
45
65
|
* Uses marker blocks to only replace the managed sections
|
|
@@ -49,4 +69,38 @@ export declare function updateWithMarkers(filePath: string, newContent: string,
|
|
|
49
69
|
updated: boolean;
|
|
50
70
|
message: string;
|
|
51
71
|
};
|
|
72
|
+
export type MarkerRemovalPlan = {
|
|
73
|
+
status: 'delete';
|
|
74
|
+
} | {
|
|
75
|
+
status: 'strip';
|
|
76
|
+
content: string;
|
|
77
|
+
} | {
|
|
78
|
+
status: 'absent';
|
|
79
|
+
} | {
|
|
80
|
+
status: 'no-markers';
|
|
81
|
+
} | {
|
|
82
|
+
status: 'error';
|
|
83
|
+
message: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Decide what removeMarkerBlock() would do to `filePath` — the read half of
|
|
87
|
+
* an unwire (FEAT-03), mirroring planMarkerUpdate()'s role for apply. A file
|
|
88
|
+
* that contains only the managed block (nothing else before/after it, once
|
|
89
|
+
* whitespace is trimmed) is deleted outright rather than left as an empty
|
|
90
|
+
* shell; a file with user content around the block keeps that content and
|
|
91
|
+
* loses only the block.
|
|
92
|
+
*/
|
|
93
|
+
export declare function planMarkerRemoval(filePath: string, markerStart: string, markerEnd: string): MarkerRemovalPlan;
|
|
94
|
+
/**
|
|
95
|
+
* Remove the agentenv-managed block from `filePath` (the write half of an
|
|
96
|
+
* unwire, FEAT-03). Deletes the file when it held only the managed block;
|
|
97
|
+
* otherwise strips just the block and preserves the surrounding user
|
|
98
|
+
* content. A file with no markers, or that doesn't exist, is left untouched.
|
|
99
|
+
*/
|
|
100
|
+
export declare function removeMarkerBlock(filePath: string, markerStart: string, markerEnd: string): {
|
|
101
|
+
success: boolean;
|
|
102
|
+
removed: boolean;
|
|
103
|
+
deleted: boolean;
|
|
104
|
+
message: string;
|
|
105
|
+
};
|
|
52
106
|
//# sourceMappingURL=agentsmd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsmd.d.ts","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAiD,MAAM,qBAAqB,CAAC;AAIpG,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiDlD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"agentsmd.d.ts","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAiD,MAAM,qBAAqB,CAAC;AAIpG,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiDlD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA0G/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,cAA+B,GAAG,MAAM,CAgChF;AA8CD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qCAAsC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,MAAY,GACpB,aAAa,EAAE,CAsBjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,CAsBA;AAaD,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAsElB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CA8BA;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GACxB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAoCnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6C3E"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { BINARY_MAP, TOOL_DESCRIPTIONS, DEFAULT_CONFIG } from '../config/schema.js';
|
|
8
|
-
import { writeFileWithRetry } from '../utils/fs-retry.js';
|
|
8
|
+
import { backupBeforeFirstEdit, writeFileWithRetry } from '../utils/fs-retry.js';
|
|
9
9
|
// Tool categories for organization
|
|
10
10
|
export const TOOL_CATEGORIES = {
|
|
11
11
|
// Search & Text Processing
|
|
@@ -51,6 +51,20 @@ export const TOOL_CATEGORIES = {
|
|
|
51
51
|
jless: 'Docs & Reading',
|
|
52
52
|
tealdeer: 'Docs & Reading',
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Per-tool tips for the "General Instructions" section. Only tools that are
|
|
56
|
+
* actually enabled get a tip, so agents are never told to use a binary that
|
|
57
|
+
* isn't installed. `bat`/`git_delta` point agents at non-interactive
|
|
58
|
+
* flags/commands instead of a pager, since agents run without a TTY.
|
|
59
|
+
*/
|
|
60
|
+
const GENERAL_INSTRUCTION_TIPS = {
|
|
61
|
+
ripgrep: 'For file search, use `rg` (ripgrep) instead of `grep -r`',
|
|
62
|
+
fd: 'For finding files, use `fd` instead of `find`',
|
|
63
|
+
jq: 'For JSON processing, use `jq`',
|
|
64
|
+
bat: 'For viewing files, use `bat --plain --paging=never` instead of `cat` (skips the pager and decorations, which matter for a human, not an agent)',
|
|
65
|
+
eza: 'For directory listings, use `eza` instead of `ls`',
|
|
66
|
+
git_delta: '`delta` gives syntax-highlighted diffs for human review; run `git --no-pager diff` (or plain `git diff`) directly instead of piping through it',
|
|
67
|
+
};
|
|
54
68
|
/**
|
|
55
69
|
* Generate AGENTS.md content from configuration
|
|
56
70
|
*/
|
|
@@ -62,26 +76,16 @@ export function generateAgentsMd(config) {
|
|
|
62
76
|
const markerEnd = config.generate?.marker_end ||
|
|
63
77
|
DEFAULT_CONFIG.generate?.marker_end ||
|
|
64
78
|
'<!-- agentenv-managed-end -->';
|
|
79
|
+
const isUserScope = config.scope === 'user';
|
|
65
80
|
// Keep all agentenv-owned content in a single block. User-authored content
|
|
66
81
|
// can safely live before or after it.
|
|
67
82
|
lines.push(markerStart);
|
|
68
83
|
// Header
|
|
69
84
|
lines.push('# AI Coding Agent Instructions');
|
|
70
85
|
lines.push('');
|
|
71
|
-
lines.push(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
lines.push('## Supported Agents');
|
|
75
|
-
lines.push('');
|
|
76
|
-
const enabledAgents = getEnabledAgentsForOutput(config);
|
|
77
|
-
if (enabledAgents.length > 0) {
|
|
78
|
-
for (const agent of enabledAgents) {
|
|
79
|
-
lines.push(`- ${agent}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
lines.push('- No agents configured');
|
|
84
|
-
}
|
|
86
|
+
lines.push(isUserScope
|
|
87
|
+
? 'This file provides instructions for AI coding agents, configured globally by agentenv.'
|
|
88
|
+
: 'This file provides instructions for AI coding agents operating in this repository.');
|
|
85
89
|
lines.push('');
|
|
86
90
|
// Available Tools section
|
|
87
91
|
lines.push('## Available Tools');
|
|
@@ -102,41 +106,42 @@ export function generateAgentsMd(config) {
|
|
|
102
106
|
lines.push('');
|
|
103
107
|
}
|
|
104
108
|
}
|
|
105
|
-
//
|
|
109
|
+
// A single rtk section (catalog entry + usage notes combined, rather than
|
|
110
|
+
// repeating the same "rewrites commands to save tokens" claim twice under
|
|
111
|
+
// two separate headings).
|
|
106
112
|
if (config.rtk?.enabled) {
|
|
107
113
|
lines.push('### Token Optimization');
|
|
108
114
|
lines.push('');
|
|
109
|
-
lines.push('- **rtk
|
|
110
|
-
lines.push(' - Automatically rewrites commands like `grep`, `find`, `cat`, etc. to faster, more token-efficient alternatives');
|
|
111
|
-
lines.push(
|
|
115
|
+
lines.push('- **rtk** (binary: `rtk`): CLI proxy that reduces LLM token consumption by 60-90% on common dev commands');
|
|
116
|
+
lines.push(' - Automatically rewrites commands like `grep`, `find`, `cat`, etc. to faster, more token-efficient alternatives; output is truncated to reduce token usage while preserving essential information');
|
|
117
|
+
lines.push(" - If a rewrite misbehaves (e.g. drops a flag it doesn't understand), run `rtk proxy <cmd>` to execute the original command unmodified");
|
|
118
|
+
lines.push(' - Use `rtk --help` for more information');
|
|
112
119
|
lines.push('');
|
|
113
120
|
}
|
|
114
121
|
lines.push('');
|
|
115
|
-
// General Instructions section
|
|
122
|
+
// General Instructions section — generated from the enabled tools so an
|
|
123
|
+
// agent is never told to use a binary that isn't actually available.
|
|
116
124
|
lines.push('## General Instructions');
|
|
117
125
|
lines.push('');
|
|
118
126
|
lines.push('- Prefer using the tools listed above for their respective tasks');
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
lines.push('- For directory listings, use `eza` instead of `ls`');
|
|
124
|
-
lines.push('- When working with git diffs, use `delta` for syntax-highlighted output');
|
|
125
|
-
if (config.rtk?.enabled) {
|
|
126
|
-
lines.push('');
|
|
127
|
-
lines.push('## RTK Configuration');
|
|
128
|
-
lines.push('');
|
|
129
|
-
lines.push('RTK (Red Teaming Kit) is enabled and will optimize your commands:');
|
|
130
|
-
lines.push('- Commands are automatically rewritten to use the most efficient tools available');
|
|
131
|
-
lines.push('- Output is truncated to reduce token usage while preserving essential information');
|
|
132
|
-
lines.push('- Use `rtk --help` for more information about RTK');
|
|
127
|
+
for (const tool of enabledTools) {
|
|
128
|
+
const tip = GENERAL_INSTRUCTION_TIPS[tool];
|
|
129
|
+
if (tip)
|
|
130
|
+
lines.push(`- ${tip}`);
|
|
133
131
|
}
|
|
134
132
|
lines.push('');
|
|
135
133
|
lines.push('## Environment Notes');
|
|
136
134
|
lines.push('');
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
if (isUserScope) {
|
|
136
|
+
lines.push('- This machine has been configured with agentenv (user scope) for optimal AI coding agent performance');
|
|
137
|
+
lines.push('- Tools are managed via [mise](https://mise.jdx.dev)');
|
|
138
|
+
lines.push('- If a listed tool is missing, run `mise trust` and `mise install` in your agentenv user config directory (`~/.config/agentenv` by default, or `$XDG_CONFIG_HOME/agentenv`)');
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
lines.push('- This repository has been configured with agentenv for optimal AI coding agent performance');
|
|
142
|
+
lines.push('- Tools are managed via [mise](https://mise.jdx.dev)');
|
|
143
|
+
lines.push('- If a listed tool is missing, run `mise trust` and `mise install` in the repo root');
|
|
144
|
+
}
|
|
140
145
|
lines.push('- Configuration is managed in `agentenv.toml`');
|
|
141
146
|
lines.push('');
|
|
142
147
|
lines.push(markerEnd);
|
|
@@ -188,32 +193,6 @@ function categorizeTools(tools) {
|
|
|
188
193
|
}
|
|
189
194
|
return categories;
|
|
190
195
|
}
|
|
191
|
-
/**
|
|
192
|
-
* Get enabled agents for output (formatted names)
|
|
193
|
-
*/
|
|
194
|
-
function getEnabledAgentsForOutput(config) {
|
|
195
|
-
const agents = config.agents || DEFAULT_CONFIG.agents || {};
|
|
196
|
-
const enabled = [];
|
|
197
|
-
if (agents.claude_code)
|
|
198
|
-
enabled.push('Claude Code');
|
|
199
|
-
if (agents.codex_cli)
|
|
200
|
-
enabled.push('Codex CLI');
|
|
201
|
-
if (agents.copilot)
|
|
202
|
-
enabled.push('GitHub Copilot');
|
|
203
|
-
if (agents.opencode)
|
|
204
|
-
enabled.push('OpenCode');
|
|
205
|
-
if (agents.gemini_cli)
|
|
206
|
-
enabled.push('Gemini CLI');
|
|
207
|
-
if (agents.cursor)
|
|
208
|
-
enabled.push('Cursor');
|
|
209
|
-
if (agents.windsurf)
|
|
210
|
-
enabled.push('Windsurf');
|
|
211
|
-
if (agents.cline)
|
|
212
|
-
enabled.push('Cline CLI');
|
|
213
|
-
if (agents.vibe)
|
|
214
|
-
enabled.push('Mistral Vibe');
|
|
215
|
-
return enabled;
|
|
216
|
-
}
|
|
217
196
|
/**
|
|
218
197
|
* Get enabled tools for output
|
|
219
198
|
*/
|
|
@@ -291,102 +270,202 @@ export function saveGeneratedFiles(files) {
|
|
|
291
270
|
errors,
|
|
292
271
|
};
|
|
293
272
|
}
|
|
273
|
+
/** The dominant line ending in `content`, defaulting to LF for empty/LF-only content. */
|
|
274
|
+
function detectLineEnding(content) {
|
|
275
|
+
return content.includes('\r\n') ? '\r\n' : '\n';
|
|
276
|
+
}
|
|
277
|
+
/** Normalize `content` to LF, then to `eol` — so callers never double up an existing `\r`. */
|
|
278
|
+
function matchLineEndings(content, eol) {
|
|
279
|
+
const normalized = content.replace(/\r\n/g, '\n');
|
|
280
|
+
return eol === '\r\n' ? normalized.replace(/\n/g, '\r\n') : normalized;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Decide what updateWithMarkers() would do to `filePath`, without writing
|
|
284
|
+
* anything (it still reads the existing file, if any). The single source of
|
|
285
|
+
* truth for both the real write and `apply --dry-run`'s preview (FEAT-06),
|
|
286
|
+
* so they can never disagree about what counts as a change.
|
|
287
|
+
*/
|
|
288
|
+
export function planMarkerUpdate(filePath, newContent, markerStart, markerEnd) {
|
|
289
|
+
if (!fs.existsSync(filePath)) {
|
|
290
|
+
return { status: 'create', content: newContent };
|
|
291
|
+
}
|
|
292
|
+
const existingContent = fs.readFileSync(filePath, 'utf-8');
|
|
293
|
+
const hasStart = existingContent.includes(markerStart);
|
|
294
|
+
const hasEnd = existingContent.includes(markerEnd);
|
|
295
|
+
// Only one marker present means a crashed/incomplete prior write; treat
|
|
296
|
+
// the file as broken rather than appending a second block, which the next
|
|
297
|
+
// pass would otherwise replace from the first start-marker to the later
|
|
298
|
+
// end-marker — clobbering any user text between them.
|
|
299
|
+
if (hasStart !== hasEnd) {
|
|
300
|
+
return {
|
|
301
|
+
status: 'error',
|
|
302
|
+
message: `File ${filePath} contains only one managed marker (a partial write); leaving it untouched`,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
// Existing files without markers belong to the user. Preserve them and
|
|
306
|
+
// append only our newly managed block.
|
|
307
|
+
if (!hasStart) {
|
|
308
|
+
const newStartIndex = newContent.indexOf(markerStart);
|
|
309
|
+
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
310
|
+
if (newStartIndex === -1 || newEndIndex === -1) {
|
|
311
|
+
return { status: 'error', message: `Markers not found in new content` };
|
|
312
|
+
}
|
|
313
|
+
const eol = detectLineEnding(existingContent);
|
|
314
|
+
const managedBlock = matchLineEndings(newContent.substring(newStartIndex, newEndIndex + markerEnd.length), eol);
|
|
315
|
+
const separator = existingContent.length === 0 || existingContent.endsWith(eol) ? eol : eol + eol;
|
|
316
|
+
return {
|
|
317
|
+
status: 'update',
|
|
318
|
+
content: `${existingContent}${separator}${managedBlock}${eol}`,
|
|
319
|
+
backupFirst: true,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
// Extract the parts before and after the markers
|
|
323
|
+
const startIndex = existingContent.indexOf(markerStart);
|
|
324
|
+
const endIndex = existingContent.indexOf(markerEnd, startIndex);
|
|
325
|
+
if (startIndex === -1 || endIndex === -1 || startIndex >= endIndex) {
|
|
326
|
+
return { status: 'error', message: `Invalid marker positions in ${filePath}` };
|
|
327
|
+
}
|
|
328
|
+
const before = existingContent.substring(0, startIndex);
|
|
329
|
+
const after = existingContent.substring(endIndex + markerEnd.length);
|
|
330
|
+
// Find the content between markers in the new content
|
|
331
|
+
const newStartIndex = newContent.indexOf(markerStart);
|
|
332
|
+
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
333
|
+
if (newStartIndex === -1 || newEndIndex === -1) {
|
|
334
|
+
return { status: 'error', message: `Markers not found in new content` };
|
|
335
|
+
}
|
|
336
|
+
const newMiddle = matchLineEndings(newContent.substring(newStartIndex, newEndIndex + markerEnd.length), detectLineEnding(existingContent));
|
|
337
|
+
const updatedContent = before + newMiddle + after;
|
|
338
|
+
if (updatedContent === existingContent) {
|
|
339
|
+
return { status: 'unchanged' };
|
|
340
|
+
}
|
|
341
|
+
return { status: 'update', content: updatedContent, backupFirst: false };
|
|
342
|
+
}
|
|
294
343
|
/**
|
|
295
344
|
* Update existing AGENTS.md/CLAUDE.md with new content, preserving user additions
|
|
296
345
|
* Uses marker blocks to only replace the managed sections
|
|
297
346
|
*/
|
|
298
347
|
export function updateWithMarkers(filePath, newContent, markerStart, markerEnd) {
|
|
299
348
|
try {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
success: true,
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
// end-marker — clobbering any user text between them.
|
|
317
|
-
if (hasStart !== hasEnd) {
|
|
318
|
-
return {
|
|
319
|
-
success: false,
|
|
320
|
-
updated: false,
|
|
321
|
-
message: `File ${filePath} contains only one managed marker (a partial write); leaving it untouched`,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
// Existing files without markers belong to the user. Preserve them and
|
|
325
|
-
// append only our newly managed block.
|
|
326
|
-
if (!hasStart) {
|
|
327
|
-
const newStartIndex = newContent.indexOf(markerStart);
|
|
328
|
-
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
329
|
-
if (newStartIndex === -1 || newEndIndex === -1) {
|
|
349
|
+
const plan = planMarkerUpdate(filePath, newContent, markerStart, markerEnd);
|
|
350
|
+
switch (plan.status) {
|
|
351
|
+
case 'error':
|
|
352
|
+
return { success: false, updated: false, message: plan.message };
|
|
353
|
+
case 'unchanged':
|
|
354
|
+
return { success: true, updated: false, message: `No changes needed for ${filePath}` };
|
|
355
|
+
case 'create':
|
|
356
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
357
|
+
writeFileWithRetry(filePath, plan.content);
|
|
358
|
+
return { success: true, updated: true, message: `Created ${filePath}` };
|
|
359
|
+
case 'update':
|
|
360
|
+
// This file predates agentenv (it had no managed markers yet) —
|
|
361
|
+
// back up the user's original content before appending to it.
|
|
362
|
+
if (plan.backupFirst)
|
|
363
|
+
backupBeforeFirstEdit(filePath);
|
|
364
|
+
writeFileWithRetry(filePath, plan.content);
|
|
330
365
|
return {
|
|
331
|
-
success:
|
|
332
|
-
updated:
|
|
333
|
-
message: `
|
|
366
|
+
success: true,
|
|
367
|
+
updated: true,
|
|
368
|
+
message: plan.backupFirst ? `Added managed block to ${filePath}` : `Updated ${filePath}`,
|
|
334
369
|
};
|
|
335
|
-
}
|
|
336
|
-
const managedBlock = newContent.substring(newStartIndex, newEndIndex + markerEnd.length);
|
|
337
|
-
const separator = existingContent.length === 0 || existingContent.endsWith('\n') ? '\n' : '\n\n';
|
|
338
|
-
writeFileWithRetry(filePath, `${existingContent}${separator}${managedBlock}\n`);
|
|
339
|
-
return {
|
|
340
|
-
success: true,
|
|
341
|
-
updated: true,
|
|
342
|
-
message: `Added managed block to ${filePath}`,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
// Extract the parts before and after the markers
|
|
346
|
-
const startIndex = existingContent.indexOf(markerStart);
|
|
347
|
-
const endIndex = existingContent.indexOf(markerEnd, startIndex);
|
|
348
|
-
if (startIndex === -1 || endIndex === -1 || startIndex >= endIndex) {
|
|
349
|
-
return {
|
|
350
|
-
success: false,
|
|
351
|
-
updated: false,
|
|
352
|
-
message: `Invalid marker positions in ${filePath}`,
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
const before = existingContent.substring(0, startIndex);
|
|
356
|
-
const after = existingContent.substring(endIndex + markerEnd.length);
|
|
357
|
-
// Find the content between markers in the new content
|
|
358
|
-
const newStartIndex = newContent.indexOf(markerStart);
|
|
359
|
-
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
360
|
-
if (newStartIndex === -1 || newEndIndex === -1) {
|
|
361
|
-
return {
|
|
362
|
-
success: false,
|
|
363
|
-
updated: false,
|
|
364
|
-
message: `Markers not found in new content`,
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
const newMiddle = newContent.substring(newStartIndex, newEndIndex + markerEnd.length);
|
|
368
|
-
// Reconstruct the file
|
|
369
|
-
const updatedContent = before + newMiddle + after;
|
|
370
|
-
// Only write if content actually changed
|
|
371
|
-
if (updatedContent !== existingContent) {
|
|
372
|
-
writeFileWithRetry(filePath, updatedContent);
|
|
373
|
-
return {
|
|
374
|
-
success: true,
|
|
375
|
-
updated: true,
|
|
376
|
-
message: `Updated ${filePath}`,
|
|
377
|
-
};
|
|
378
370
|
}
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
379
373
|
return {
|
|
380
|
-
success:
|
|
374
|
+
success: false,
|
|
381
375
|
updated: false,
|
|
382
|
-
message: `
|
|
376
|
+
message: `Error updating ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
383
377
|
};
|
|
384
378
|
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Decide what removeMarkerBlock() would do to `filePath` — the read half of
|
|
382
|
+
* an unwire (FEAT-03), mirroring planMarkerUpdate()'s role for apply. A file
|
|
383
|
+
* that contains only the managed block (nothing else before/after it, once
|
|
384
|
+
* whitespace is trimmed) is deleted outright rather than left as an empty
|
|
385
|
+
* shell; a file with user content around the block keeps that content and
|
|
386
|
+
* loses only the block.
|
|
387
|
+
*/
|
|
388
|
+
export function planMarkerRemoval(filePath, markerStart, markerEnd) {
|
|
389
|
+
if (!fs.existsSync(filePath)) {
|
|
390
|
+
return { status: 'absent' };
|
|
391
|
+
}
|
|
392
|
+
const existingContent = fs.readFileSync(filePath, 'utf-8');
|
|
393
|
+
const hasStart = existingContent.includes(markerStart);
|
|
394
|
+
const hasEnd = existingContent.includes(markerEnd);
|
|
395
|
+
if (!hasStart && !hasEnd) {
|
|
396
|
+
return { status: 'no-markers' };
|
|
397
|
+
}
|
|
398
|
+
if (hasStart !== hasEnd) {
|
|
399
|
+
return {
|
|
400
|
+
status: 'error',
|
|
401
|
+
message: `File ${filePath} contains only one managed marker (a partial write); leaving it untouched`,
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
const startIndex = existingContent.indexOf(markerStart);
|
|
405
|
+
const endIndex = existingContent.indexOf(markerEnd, startIndex);
|
|
406
|
+
if (startIndex === -1 || endIndex === -1 || startIndex >= endIndex) {
|
|
407
|
+
return { status: 'error', message: `Invalid marker positions in ${filePath}` };
|
|
408
|
+
}
|
|
409
|
+
const before = existingContent.slice(0, startIndex).replace(/\s+$/, '');
|
|
410
|
+
const after = existingContent.slice(endIndex + markerEnd.length).replace(/^\s+/, '');
|
|
411
|
+
if (before.length === 0 && after.length === 0) {
|
|
412
|
+
return { status: 'delete' };
|
|
413
|
+
}
|
|
414
|
+
const eol = detectLineEnding(existingContent);
|
|
415
|
+
const separator = before.length > 0 && after.length > 0 ? eol + eol : '';
|
|
416
|
+
const body = `${before}${separator}${after}`;
|
|
417
|
+
return { status: 'strip', content: body.endsWith(eol) ? body : `${body}${eol}` };
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Remove the agentenv-managed block from `filePath` (the write half of an
|
|
421
|
+
* unwire, FEAT-03). Deletes the file when it held only the managed block;
|
|
422
|
+
* otherwise strips just the block and preserves the surrounding user
|
|
423
|
+
* content. A file with no markers, or that doesn't exist, is left untouched.
|
|
424
|
+
*/
|
|
425
|
+
export function removeMarkerBlock(filePath, markerStart, markerEnd) {
|
|
426
|
+
try {
|
|
427
|
+
const plan = planMarkerRemoval(filePath, markerStart, markerEnd);
|
|
428
|
+
switch (plan.status) {
|
|
429
|
+
case 'absent':
|
|
430
|
+
return {
|
|
431
|
+
success: true,
|
|
432
|
+
removed: false,
|
|
433
|
+
deleted: false,
|
|
434
|
+
message: `${filePath} does not exist; nothing to remove`,
|
|
435
|
+
};
|
|
436
|
+
case 'no-markers':
|
|
437
|
+
return {
|
|
438
|
+
success: true,
|
|
439
|
+
removed: false,
|
|
440
|
+
deleted: false,
|
|
441
|
+
message: `${filePath} has no managed block; left untouched`,
|
|
442
|
+
};
|
|
443
|
+
case 'error':
|
|
444
|
+
return { success: false, removed: false, deleted: false, message: plan.message };
|
|
445
|
+
case 'delete':
|
|
446
|
+
fs.unlinkSync(filePath);
|
|
447
|
+
return {
|
|
448
|
+
success: true,
|
|
449
|
+
removed: true,
|
|
450
|
+
deleted: true,
|
|
451
|
+
message: `Deleted ${filePath} (contained only agentenv-managed content)`,
|
|
452
|
+
};
|
|
453
|
+
case 'strip':
|
|
454
|
+
writeFileWithRetry(filePath, plan.content);
|
|
455
|
+
return {
|
|
456
|
+
success: true,
|
|
457
|
+
removed: true,
|
|
458
|
+
deleted: false,
|
|
459
|
+
message: `Removed managed block from ${filePath}`,
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
}
|
|
385
463
|
catch (err) {
|
|
386
464
|
return {
|
|
387
465
|
success: false,
|
|
388
|
-
|
|
389
|
-
|
|
466
|
+
removed: false,
|
|
467
|
+
deleted: false,
|
|
468
|
+
message: `Error removing managed block from ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
390
469
|
};
|
|
391
470
|
}
|
|
392
471
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsmd.js","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentsmd.js","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,10 +11,12 @@ import { statusCommand } from './commands/status.js';
|
|
|
11
11
|
import { updateCommand } from './commands/update.js';
|
|
12
12
|
import { doctorCommand } from './commands/doctor.js';
|
|
13
13
|
import { uninstallCommand } from './commands/uninstall.js';
|
|
14
|
+
import { addCommand, removeCommand } from './commands/config-edit.js';
|
|
14
15
|
import { completionCommand } from './commands/completion.js';
|
|
15
16
|
import { shellFixCommand } from './commands/shell-fix.js';
|
|
16
17
|
import { setColorEnabled } from './ui/theme.js';
|
|
17
18
|
import { setQuietEnabled } from './ui/output.js';
|
|
19
|
+
import { setSpinnerEnabled } from './ui/spinner.js';
|
|
18
20
|
import { installExitOverride } from './cli/exit.js';
|
|
19
21
|
const { version } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
20
22
|
// Create the CLI
|
|
@@ -26,14 +28,17 @@ program
|
|
|
26
28
|
.showSuggestionAfterError()
|
|
27
29
|
.option('--no-color', 'disable colored output (also honors the NO_COLOR env var)')
|
|
28
30
|
.option('-q, --quiet', 'suppress banner/footer chrome (data lines are kept)')
|
|
31
|
+
.option('--no-spinner', 'disable the animated spinner, keeping the label/succeed/fail lines (also auto-off under TERM=dumb or CI)')
|
|
29
32
|
.option('--debug', 'print the failing command and stack trace for unhandled errors');
|
|
30
33
|
// Color auto-detects from TTY + NO_COLOR/FORCE_COLOR by default (chalk);
|
|
31
|
-
// --no-color and -
|
|
34
|
+
// --no-color, -q and --no-spinner are explicit overrides, applied before any command runs.
|
|
32
35
|
program.hook('preAction', (_thisCommand, actionCommand) => {
|
|
33
|
-
const { color, quiet } = actionCommand.optsWithGlobals();
|
|
36
|
+
const { color, quiet, spinner } = actionCommand.optsWithGlobals();
|
|
34
37
|
if (color === false)
|
|
35
38
|
setColorEnabled(false);
|
|
36
39
|
setQuietEnabled(quiet === true);
|
|
40
|
+
if (spinner === false)
|
|
41
|
+
setSpinnerEnabled(false);
|
|
37
42
|
});
|
|
38
43
|
// Add commands
|
|
39
44
|
program.addCommand(setupCommand);
|
|
@@ -42,6 +47,8 @@ program.addCommand(statusCommand);
|
|
|
42
47
|
program.addCommand(updateCommand);
|
|
43
48
|
program.addCommand(doctorCommand);
|
|
44
49
|
program.addCommand(uninstallCommand);
|
|
50
|
+
program.addCommand(addCommand);
|
|
51
|
+
program.addCommand(removeCommand);
|
|
45
52
|
program.addCommand(completionCommand);
|
|
46
53
|
program.addCommand(shellFixCommand);
|
|
47
54
|
// After addCommand, so the override is installed on every subcommand too.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnG,iBAAiB;AACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wEAAwE,CAAC;KACrF,OAAO,CAAC,OAAO,CAAC;KAChB,wBAAwB,EAAE;KAC1B,MAAM,CAAC,YAAY,EAAE,2DAA2D,CAAC;KACjF,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;KAC5E,MAAM,CAAC,SAAS,EAAE,gEAAgE,CAAC,CAAC;AAEvF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/integrations/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/integrations/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAiB1E,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAU1E;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,SAAS,GAAG,eAAe,GACxE,MAAM,CAyBR"}
|