@indy2kro/agentenv 1.0.0 → 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 +31 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +224 -123
- 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 +225 -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 +23 -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 +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/config/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,YAAY,8BAA+B,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAIhG;AAED,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAE7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAE5E;
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/config/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,YAAY,8BAA+B,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAIhG;AAED,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAE7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAE5E;AAkBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CAM9E"}
|
package/dist/config/scopes.js
CHANGED
|
@@ -36,12 +36,31 @@ export function configFilePath(scope) {
|
|
|
36
36
|
return path.join(resolveScopeDir(scope), 'agentenv.toml');
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
39
|
+
* Walk from `startDir` up to the filesystem root looking for `filename`, the
|
|
40
|
+
* way git looks for `.git` and mise looks for `mise.toml`. Returns the first
|
|
41
|
+
* match, or undefined if none exists all the way to the root.
|
|
42
|
+
*/
|
|
43
|
+
function findUpward(startDir, filename) {
|
|
44
|
+
let dir = path.resolve(startDir);
|
|
45
|
+
for (;;) {
|
|
46
|
+
const candidate = path.join(dir, filename);
|
|
47
|
+
if (fs.existsSync(candidate))
|
|
48
|
+
return candidate;
|
|
49
|
+
const parent = path.dirname(dir);
|
|
50
|
+
if (parent === dir)
|
|
51
|
+
return undefined;
|
|
52
|
+
dir = parent;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Locate an existing agentenv.toml: project config first — searching `cwd`
|
|
57
|
+
* and its parent directories, so `agentenv status` from `repo/src` still
|
|
58
|
+
* finds `repo/agentenv.toml` — then user/global. Returns the first match, or
|
|
59
|
+
* undefined when none exists.
|
|
41
60
|
*/
|
|
42
61
|
export function findConfigPath(cwd = process.cwd()) {
|
|
43
|
-
const project =
|
|
44
|
-
if (
|
|
62
|
+
const project = findUpward(cwd, 'agentenv.toml');
|
|
63
|
+
if (project)
|
|
45
64
|
return project;
|
|
46
65
|
const user = path.join(userConfigDir(), 'agentenv.toml');
|
|
47
66
|
if (fs.existsSync(user))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/config/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC;AAGzD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAyB;IACtD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,kCAAkC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqC;IACnE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAqC;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/config/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC;AAGzD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAyB;IACtD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,kCAAkC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqC;IACnE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAqC;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,QAAgB,EAAE,QAAgB;IACpD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,eAAe,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -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,
|
|
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
|
|
@@ -41,6 +41,9 @@ export const TOOL_CATEGORIES = {
|
|
|
41
41
|
shellcheck: 'Linting & Security',
|
|
42
42
|
actionlint: 'Linting & Security',
|
|
43
43
|
gitleaks: 'Linting & Security',
|
|
44
|
+
taplo: 'Linting & Security',
|
|
45
|
+
hadolint: 'Linting & Security',
|
|
46
|
+
trivy: 'Linting & Security',
|
|
44
47
|
// Data & Analysis
|
|
45
48
|
duckdb: 'Data & Analysis',
|
|
46
49
|
qsv: 'Data & Analysis',
|
|
@@ -48,6 +51,20 @@ export const TOOL_CATEGORIES = {
|
|
|
48
51
|
jless: 'Docs & Reading',
|
|
49
52
|
tealdeer: 'Docs & Reading',
|
|
50
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
|
+
};
|
|
51
68
|
/**
|
|
52
69
|
* Generate AGENTS.md content from configuration
|
|
53
70
|
*/
|
|
@@ -59,26 +76,16 @@ export function generateAgentsMd(config) {
|
|
|
59
76
|
const markerEnd = config.generate?.marker_end ||
|
|
60
77
|
DEFAULT_CONFIG.generate?.marker_end ||
|
|
61
78
|
'<!-- agentenv-managed-end -->';
|
|
79
|
+
const isUserScope = config.scope === 'user';
|
|
62
80
|
// Keep all agentenv-owned content in a single block. User-authored content
|
|
63
81
|
// can safely live before or after it.
|
|
64
82
|
lines.push(markerStart);
|
|
65
83
|
// Header
|
|
66
84
|
lines.push('# AI Coding Agent Instructions');
|
|
67
85
|
lines.push('');
|
|
68
|
-
lines.push(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
lines.push('## Supported Agents');
|
|
72
|
-
lines.push('');
|
|
73
|
-
const enabledAgents = getEnabledAgentsForOutput(config);
|
|
74
|
-
if (enabledAgents.length > 0) {
|
|
75
|
-
for (const agent of enabledAgents) {
|
|
76
|
-
lines.push(`- ${agent}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
lines.push('- No agents configured');
|
|
81
|
-
}
|
|
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.');
|
|
82
89
|
lines.push('');
|
|
83
90
|
// Available Tools section
|
|
84
91
|
lines.push('## Available Tools');
|
|
@@ -99,41 +106,42 @@ export function generateAgentsMd(config) {
|
|
|
99
106
|
lines.push('');
|
|
100
107
|
}
|
|
101
108
|
}
|
|
102
|
-
//
|
|
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).
|
|
103
112
|
if (config.rtk?.enabled) {
|
|
104
113
|
lines.push('### Token Optimization');
|
|
105
114
|
lines.push('');
|
|
106
|
-
lines.push('- **rtk
|
|
107
|
-
lines.push(' - Automatically rewrites commands like `grep`, `find`, `cat`, etc. to faster, more token-efficient alternatives');
|
|
108
|
-
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');
|
|
109
119
|
lines.push('');
|
|
110
120
|
}
|
|
111
121
|
lines.push('');
|
|
112
|
-
// 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.
|
|
113
124
|
lines.push('## General Instructions');
|
|
114
125
|
lines.push('');
|
|
115
126
|
lines.push('- Prefer using the tools listed above for their respective tasks');
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
lines.push('- For directory listings, use `eza` instead of `ls`');
|
|
121
|
-
lines.push('- When working with git diffs, use `delta` for syntax-highlighted output');
|
|
122
|
-
if (config.rtk?.enabled) {
|
|
123
|
-
lines.push('');
|
|
124
|
-
lines.push('## RTK Configuration');
|
|
125
|
-
lines.push('');
|
|
126
|
-
lines.push('RTK (Red Teaming Kit) is enabled and will optimize your commands:');
|
|
127
|
-
lines.push('- Commands are automatically rewritten to use the most efficient tools available');
|
|
128
|
-
lines.push('- Output is truncated to reduce token usage while preserving essential information');
|
|
129
|
-
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}`);
|
|
130
131
|
}
|
|
131
132
|
lines.push('');
|
|
132
133
|
lines.push('## Environment Notes');
|
|
133
134
|
lines.push('');
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
+
}
|
|
137
145
|
lines.push('- Configuration is managed in `agentenv.toml`');
|
|
138
146
|
lines.push('');
|
|
139
147
|
lines.push(markerEnd);
|
|
@@ -185,32 +193,6 @@ function categorizeTools(tools) {
|
|
|
185
193
|
}
|
|
186
194
|
return categories;
|
|
187
195
|
}
|
|
188
|
-
/**
|
|
189
|
-
* Get enabled agents for output (formatted names)
|
|
190
|
-
*/
|
|
191
|
-
function getEnabledAgentsForOutput(config) {
|
|
192
|
-
const agents = config.agents || DEFAULT_CONFIG.agents || {};
|
|
193
|
-
const enabled = [];
|
|
194
|
-
if (agents.claude_code)
|
|
195
|
-
enabled.push('Claude Code');
|
|
196
|
-
if (agents.codex_cli)
|
|
197
|
-
enabled.push('Codex CLI');
|
|
198
|
-
if (agents.copilot)
|
|
199
|
-
enabled.push('GitHub Copilot');
|
|
200
|
-
if (agents.opencode)
|
|
201
|
-
enabled.push('OpenCode');
|
|
202
|
-
if (agents.gemini_cli)
|
|
203
|
-
enabled.push('Gemini CLI');
|
|
204
|
-
if (agents.cursor)
|
|
205
|
-
enabled.push('Cursor');
|
|
206
|
-
if (agents.windsurf)
|
|
207
|
-
enabled.push('Windsurf');
|
|
208
|
-
if (agents.cline)
|
|
209
|
-
enabled.push('Cline CLI');
|
|
210
|
-
if (agents.vibe)
|
|
211
|
-
enabled.push('Mistral Vibe');
|
|
212
|
-
return enabled;
|
|
213
|
-
}
|
|
214
196
|
/**
|
|
215
197
|
* Get enabled tools for output
|
|
216
198
|
*/
|
|
@@ -288,102 +270,202 @@ export function saveGeneratedFiles(files) {
|
|
|
288
270
|
errors,
|
|
289
271
|
};
|
|
290
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
|
+
}
|
|
291
343
|
/**
|
|
292
344
|
* Update existing AGENTS.md/CLAUDE.md with new content, preserving user additions
|
|
293
345
|
* Uses marker blocks to only replace the managed sections
|
|
294
346
|
*/
|
|
295
347
|
export function updateWithMarkers(filePath, newContent, markerStart, markerEnd) {
|
|
296
348
|
try {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
success: true,
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
// end-marker — clobbering any user text between them.
|
|
314
|
-
if (hasStart !== hasEnd) {
|
|
315
|
-
return {
|
|
316
|
-
success: false,
|
|
317
|
-
updated: false,
|
|
318
|
-
message: `File ${filePath} contains only one managed marker (a partial write); leaving it untouched`,
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
// Existing files without markers belong to the user. Preserve them and
|
|
322
|
-
// append only our newly managed block.
|
|
323
|
-
if (!hasStart) {
|
|
324
|
-
const newStartIndex = newContent.indexOf(markerStart);
|
|
325
|
-
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
326
|
-
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);
|
|
327
365
|
return {
|
|
328
|
-
success:
|
|
329
|
-
updated:
|
|
330
|
-
message: `
|
|
366
|
+
success: true,
|
|
367
|
+
updated: true,
|
|
368
|
+
message: plan.backupFirst ? `Added managed block to ${filePath}` : `Updated ${filePath}`,
|
|
331
369
|
};
|
|
332
|
-
}
|
|
333
|
-
const managedBlock = newContent.substring(newStartIndex, newEndIndex + markerEnd.length);
|
|
334
|
-
const separator = existingContent.length === 0 || existingContent.endsWith('\n') ? '\n' : '\n\n';
|
|
335
|
-
writeFileWithRetry(filePath, `${existingContent}${separator}${managedBlock}\n`);
|
|
336
|
-
return {
|
|
337
|
-
success: true,
|
|
338
|
-
updated: true,
|
|
339
|
-
message: `Added managed block to ${filePath}`,
|
|
340
|
-
};
|
|
341
|
-
}
|
|
342
|
-
// Extract the parts before and after the markers
|
|
343
|
-
const startIndex = existingContent.indexOf(markerStart);
|
|
344
|
-
const endIndex = existingContent.indexOf(markerEnd, startIndex);
|
|
345
|
-
if (startIndex === -1 || endIndex === -1 || startIndex >= endIndex) {
|
|
346
|
-
return {
|
|
347
|
-
success: false,
|
|
348
|
-
updated: false,
|
|
349
|
-
message: `Invalid marker positions in ${filePath}`,
|
|
350
|
-
};
|
|
351
|
-
}
|
|
352
|
-
const before = existingContent.substring(0, startIndex);
|
|
353
|
-
const after = existingContent.substring(endIndex + markerEnd.length);
|
|
354
|
-
// Find the content between markers in the new content
|
|
355
|
-
const newStartIndex = newContent.indexOf(markerStart);
|
|
356
|
-
const newEndIndex = newContent.indexOf(markerEnd, newStartIndex);
|
|
357
|
-
if (newStartIndex === -1 || newEndIndex === -1) {
|
|
358
|
-
return {
|
|
359
|
-
success: false,
|
|
360
|
-
updated: false,
|
|
361
|
-
message: `Markers not found in new content`,
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
const newMiddle = newContent.substring(newStartIndex, newEndIndex + markerEnd.length);
|
|
365
|
-
// Reconstruct the file
|
|
366
|
-
const updatedContent = before + newMiddle + after;
|
|
367
|
-
// Only write if content actually changed
|
|
368
|
-
if (updatedContent !== existingContent) {
|
|
369
|
-
writeFileWithRetry(filePath, updatedContent);
|
|
370
|
-
return {
|
|
371
|
-
success: true,
|
|
372
|
-
updated: true,
|
|
373
|
-
message: `Updated ${filePath}`,
|
|
374
|
-
};
|
|
375
370
|
}
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
376
373
|
return {
|
|
377
|
-
success:
|
|
374
|
+
success: false,
|
|
378
375
|
updated: false,
|
|
379
|
-
message: `
|
|
376
|
+
message: `Error updating ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
380
377
|
};
|
|
381
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
|
+
}
|
|
382
463
|
catch (err) {
|
|
383
464
|
return {
|
|
384
465
|
success: false,
|
|
385
|
-
|
|
386
|
-
|
|
466
|
+
removed: false,
|
|
467
|
+
deleted: false,
|
|
468
|
+
message: `Error removing managed block from ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
387
469
|
};
|
|
388
470
|
}
|
|
389
471
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsmd.js","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAkB,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,2BAA2B;IAC3B,OAAO,EAAE,0BAA0B;IACnC,EAAE,EAAE,0BAA0B;IAC9B,EAAE,EAAE,0BAA0B;IAC9B,EAAE,EAAE,0BAA0B;IAC9B,QAAQ,EAAE,0BAA0B;IACpC,WAAW,EAAE,0BAA0B;IACvC,EAAE,EAAE,0BAA0B;IAE9B,kBAAkB;IAClB,SAAS,EAAE,iBAAiB;IAC5B,UAAU,EAAE,iBAAiB;IAC7B,EAAE,EAAE,iBAAiB;IAErB,YAAY;IACZ,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,WAAW;IACtB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,WAAW;IAEjB,qBAAqB;IACrB,GAAG,EAAE,oBAAoB;IAEzB,qBAAqB;IACrB,UAAU,EAAE,oBAAoB;IAChC,UAAU,EAAE,oBAAoB;IAChC,QAAQ,EAAE,oBAAoB;IAE9B,kBAAkB;IAClB,MAAM,EAAE,iBAAiB;IACzB,GAAG,EAAE,iBAAiB;IAEtB,iBAAiB;IACjB,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAOF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GACf,MAAM,CAAC,QAAQ,EAAE,YAAY;QAC7B,cAAc,CAAC,QAAQ,EAAE,YAAY;QACrC,iCAAiC,CAAC;IACpC,MAAM,SAAS,GACb,MAAM,CAAC,QAAQ,EAAE,UAAU;QAC3B,cAAc,CAAC,QAAQ,EAAE,UAAU;QACnC,+BAA+B,CAAC;IAElC,2EAA2E;IAC3E,sCAAsC;IACtC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExB,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,2BAA2B;IAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,eAAe,CACtC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CACnF,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC;gBACxE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,iBAAiB,UAAU,QAAQ,WAAW,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,0FAA0F,CAC3F,CAAC;QACF,KAAK,CAAC,IAAI,CACR,mHAAmH,CACpH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,+BAA+B;IAC/B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAEvF,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CACR,oFAAoF,CACrF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,6FAA6F,CAC9F,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAClG,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAyB,cAAc;IACtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GACf,MAAM,CAAC,QAAQ,EAAE,YAAY;QAC7B,cAAc,CAAC,QAAQ,EAAE,YAAY;QACrC,iCAAiC,CAAC;IACpC,MAAM,SAAS,GACb,MAAM,CAAC,QAAQ,EAAE,UAAU;QAC3B,cAAc,CAAC,QAAQ,EAAE,UAAU;QACnC,+BAA+B,CAAC;IAElC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAClG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAe;IACtC,MAAM,UAAU,GAA6B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,MAAsB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,MAAsB;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAA8B,CAAC;IAEjE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAsB,EACtB,UAAkB,GAAG;IAErB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,SAAS,GACb,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;QACvB,CAAC,CAAC,oBAAoB,CAAC;IAE3B,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;YACrC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;YACrC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IAKvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,SAAiB;IAMjB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,qCAAqC;YACrC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,WAAW,QAAQ,EAAE;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEnD,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,QAAQ,2EAA2E;aACrG,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,uCAAuC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACjE,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,kCAAkC;iBAC5C,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,SAAS,GACb,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YACjF,kBAAkB,CAAC,QAAQ,EAAE,GAAG,eAAe,GAAG,SAAS,GAAG,YAAY,IAAI,CAAC,CAAC;YAChF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0BAA0B,QAAQ,EAAE;aAC9C,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAEhE,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;YACnE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,+BAA+B,QAAQ,EAAE;aACnD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAErE,sDAAsD;QACtD,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,kCAAkC;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAEtF,uBAAuB;QACvB,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;QAElD,yCAAyC;QACzC,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;YACvC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,WAAW,QAAQ,EAAE;aAC/B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,yBAAyB,QAAQ,EAAE;SAC7C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC3F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"agentsmd.js","sourceRoot":"","sources":["../../src/generate/agentsmd.ts"],"names":[],"mappings":"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"}
|