@event4u/agent-config 4.1.0 → 4.3.0
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/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +51 -0
- package/README.md +3 -2
- package/dist/cli/agent-config.js +9 -0
- package/dist/cli/agent-config.js.map +1 -1
- package/dist/cli/commands/uiServe.js +1 -1
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/initRouting.js +101 -0
- package/dist/cli/initRouting.js.map +1 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +1 -1
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +1 -1
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +1 -1
- package/dist/mcp/registry-manifest.json +1 -1
- package/dist/server/routes/install.js +11 -200
- package/dist/server/routes/install.js.map +1 -1
- package/dist/server/routes/wizard.js +167 -26
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +1 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-BDAhhpDV.js +40 -0
- package/dist/ui/assets/index-BDAhhpDV.js.map +1 -0
- package/dist/ui/index.html +1 -1
- package/docs/contracts/gui-wizard.md +116 -96
- package/docs/decisions/ADR-021-deployment-shape.md +2 -2
- package/docs/deploy/connector-setup.md +2 -2
- package/docs/deploy/policy-cookbook.md +2 -2
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/install.py +197 -34
- package/scripts/lint_framework_leakage_allowlist.json +8 -0
- package/dist/install/apply.js +0 -238
- package/dist/install/apply.js.map +0 -1
- package/dist/install/bridges/augment.js +0 -20
- package/dist/install/bridges/augment.js.map +0 -1
- package/dist/install/bridges/claude.js +0 -44
- package/dist/install/bridges/claude.js.map +0 -1
- package/dist/install/bridges/cline.js +0 -69
- package/dist/install/bridges/cline.js.map +0 -1
- package/dist/install/bridges/copilot.js +0 -28
- package/dist/install/bridges/copilot.js.map +0 -1
- package/dist/install/bridges/cursor.js +0 -34
- package/dist/install/bridges/cursor.js.map +0 -1
- package/dist/install/bridges/gemini.js +0 -39
- package/dist/install/bridges/gemini.js.map +0 -1
- package/dist/install/bridges/index.js +0 -88
- package/dist/install/bridges/index.js.map +0 -1
- package/dist/install/bridges/marker-content.js +0 -153
- package/dist/install/bridges/marker-content.js.map +0 -1
- package/dist/install/bridges/markers.js +0 -42
- package/dist/install/bridges/markers.js.map +0 -1
- package/dist/install/bridges/types.js +0 -31
- package/dist/install/bridges/types.js.map +0 -1
- package/dist/install/bridges/vscode.js +0 -26
- package/dist/install/bridges/vscode.js.map +0 -1
- package/dist/install/bridges/windsurf.js +0 -35
- package/dist/install/bridges/windsurf.js.map +0 -1
- package/dist/ui/assets/index-DLEuEW1V.js +0 -35
- package/dist/ui/assets/index-DLEuEW1V.js.map +0 -1
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Augment bridge — `.augment/settings.json` plugin enablement.
|
|
3
|
-
*
|
|
4
|
-
* Augment lifecycle hooks live at user scope (~/.augment/settings.json,
|
|
5
|
-
* see https://docs.augmentcode.com/cli/hooks). Project-scope settings
|
|
6
|
-
* carry plugin enablement only — the bridge writes a minimal JSON
|
|
7
|
-
* payload deep-merged with any existing user content.
|
|
8
|
-
*
|
|
9
|
-
* Mirror of `scripts/install.py:ensure_augment_bridge` (lines 888–892).
|
|
10
|
-
*/
|
|
11
|
-
import { join } from 'node:path';
|
|
12
|
-
/** Builder for the Augment project-scope bridge. */
|
|
13
|
-
export const buildAugmentBridge = (ctx) => ({
|
|
14
|
-
kind: 'json',
|
|
15
|
-
toolId: 'augment',
|
|
16
|
-
target: join(ctx.projectRoot, '.augment', 'settings.json'),
|
|
17
|
-
payload: { enabledPlugins: { 'agent-config@event4u': true } },
|
|
18
|
-
label: '.augment/settings.json',
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=augment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"augment.js","sourceRoot":"","sources":["../../../src/install/bridges/augment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAkB,CAAC,GAAG,EAAoB,EAAE,CAAC,CAAC;IACzE,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC;IAC1D,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE;IAC7D,KAAK,EAAE,wBAAwB;CAClC,CAAC,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Code bridge — `.claude/settings.json` plugin + hooks.
|
|
3
|
-
*
|
|
4
|
-
* Each Claude Code lifecycle event is wired to a single
|
|
5
|
-
* `./agent-config dispatch:hook` invocation. The dispatcher reads
|
|
6
|
-
* `scripts/hook_manifest.yaml` at runtime and runs the resolved concern
|
|
7
|
-
* chain. Idempotent: deep-merge replaces hook arrays rather than
|
|
8
|
-
* appending duplicates on rerun.
|
|
9
|
-
*
|
|
10
|
-
* Mirror of `scripts/install.py:ensure_claude_bridge` (lines 1042–1066).
|
|
11
|
-
*/
|
|
12
|
-
import { join } from 'node:path';
|
|
13
|
-
import { dispatchCommand, } from './types.js';
|
|
14
|
-
/** Native event names per https://docs.claude.com/en/docs/claude-code/hooks. */
|
|
15
|
-
export const CLAUDE_BINDINGS = [
|
|
16
|
-
['session_start', 'SessionStart'],
|
|
17
|
-
['session_end', 'SessionEnd'],
|
|
18
|
-
['stop', 'Stop'],
|
|
19
|
-
['user_prompt_submit', 'UserPromptSubmit'],
|
|
20
|
-
['post_tool_use', 'PostToolUse'],
|
|
21
|
-
];
|
|
22
|
-
function dispatchBlock(acEvent, native) {
|
|
23
|
-
return {
|
|
24
|
-
hooks: [{ type: 'command', command: dispatchCommand('claude', acEvent, native) }],
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/** Builder for the Claude Code project-scope bridge. */
|
|
28
|
-
export const buildClaudeBridge = (ctx) => {
|
|
29
|
-
const perEvent = {};
|
|
30
|
-
for (const [acEvent, native] of CLAUDE_BINDINGS) {
|
|
31
|
-
(perEvent[native] ??= []).push(dispatchBlock(acEvent, native));
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
kind: 'json',
|
|
35
|
-
toolId: 'claude',
|
|
36
|
-
target: join(ctx.projectRoot, '.claude', 'settings.json'),
|
|
37
|
-
payload: {
|
|
38
|
-
enabledPlugins: { 'agent-conf@event4u': true },
|
|
39
|
-
hooks: perEvent,
|
|
40
|
-
},
|
|
41
|
-
label: '.claude/settings.json',
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/install/bridges/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAGH,eAAe,GAElB,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAA8C;IACtE,CAAC,eAAe,EAAO,cAAc,CAAC;IACtC,CAAC,aAAa,EAAS,YAAY,CAAC;IACpC,CAAC,MAAM,EAAgB,MAAM,CAAC;IAC9B,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAC1C,CAAC,eAAe,EAAO,aAAa,CAAC;CACxC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB,EAAE,MAAc;IACnD,OAAO;QACH,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;KACpF,CAAC;AACN,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAoB,EAAE;IACtE,MAAM,QAAQ,GAAiC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC;QACzD,OAAO,EAAE;YACL,cAAc,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;YAC9C,KAAK,EAAE,QAAQ;SAClB;QACD,KAAK,EAAE,uBAAuB;KACjC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cline bridge — `.clinerules/hooks/<NativeEvent>` per-event scripts.
|
|
3
|
-
*
|
|
4
|
-
* Phase 7.6 (docs/contracts/hook-architecture-v1.md): Cline project
|
|
5
|
-
* hooks are individual executable scripts named exactly after the hook
|
|
6
|
-
* (no extension). One script per (ac_event, native_event) binding.
|
|
7
|
-
*
|
|
8
|
-
* The script reads stdin (Cline's payload), forwards it into
|
|
9
|
-
* `./agent-config dispatch:hook`, then emits the empty JSON envelope
|
|
10
|
-
* Cline expects (`{}` = no cancel, no context modification). `cd
|
|
11
|
-
* "$WORKSPACE_ROOT"` is intentional — guards against cline#8073-class
|
|
12
|
-
* shifts in cwd handling.
|
|
13
|
-
*
|
|
14
|
-
* Mirror of `scripts/install.py:ensure_cline_bridge` (lines 1181–1254).
|
|
15
|
-
*/
|
|
16
|
-
import { join, resolve } from 'node:path';
|
|
17
|
-
export const CLINE_BINDINGS = [
|
|
18
|
-
['session_start', 'TaskStart'],
|
|
19
|
-
['session_start', 'TaskResume'],
|
|
20
|
-
['session_end', 'TaskComplete'],
|
|
21
|
-
['stop', 'TaskCancel'],
|
|
22
|
-
['user_prompt_submit', 'UserPromptSubmit'],
|
|
23
|
-
['post_tool_use', 'PostToolUse'],
|
|
24
|
-
];
|
|
25
|
-
/**
|
|
26
|
-
* POSIX shell single-quote: wraps the value in `'…'` and escapes any
|
|
27
|
-
* internal single quotes via the standard `'\''` sequence. Matches
|
|
28
|
-
* Python's `shlex.quote` for the inputs the bridge actually uses
|
|
29
|
-
* (filesystem paths).
|
|
30
|
-
*/
|
|
31
|
-
export function shellQuote(value) {
|
|
32
|
-
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
33
|
-
}
|
|
34
|
-
function buildBody(acEvent, nativeEvent, workspaceQuoted) {
|
|
35
|
-
return `#!/usr/bin/env bash
|
|
36
|
-
# Generated by event4u/agent-config — DO NOT EDIT.
|
|
37
|
-
# Project-scope Cline hook for ${nativeEvent} → agent-config ${acEvent}.
|
|
38
|
-
# Phase 7.6 (docs/contracts/hook-architecture-v1.md).
|
|
39
|
-
set -u
|
|
40
|
-
EVENT_DATA="$(cat)"
|
|
41
|
-
WORKSPACE_ROOT=${workspaceQuoted}
|
|
42
|
-
cd "$WORKSPACE_ROOT" 2>/dev/null || { printf '%s\\n' '{}'; exit 0; }
|
|
43
|
-
if [ ! -x ./agent-config ]; then
|
|
44
|
-
printf '%s\\n' '{}'
|
|
45
|
-
exit 0
|
|
46
|
-
fi
|
|
47
|
-
printf '%s' "$EVENT_DATA" \\
|
|
48
|
-
| ./agent-config dispatch:hook \\
|
|
49
|
-
--platform cline \\
|
|
50
|
-
--event ${acEvent} \\
|
|
51
|
-
--native-event ${nativeEvent} \\
|
|
52
|
-
>/dev/null 2>&1 || true
|
|
53
|
-
printf '%s\\n' '{}'
|
|
54
|
-
exit 0
|
|
55
|
-
`;
|
|
56
|
-
}
|
|
57
|
-
/** Builder for the Cline project-scope bridge (one script per binding). */
|
|
58
|
-
export const buildClineBridge = (ctx) => {
|
|
59
|
-
const workspaceQuoted = shellQuote(resolve(ctx.projectRoot));
|
|
60
|
-
return CLINE_BINDINGS.map(([acEvent, native]) => ({
|
|
61
|
-
kind: 'script',
|
|
62
|
-
toolId: 'cline',
|
|
63
|
-
target: join(ctx.projectRoot, '.clinerules', 'hooks', native),
|
|
64
|
-
content: buildBody(acEvent, native, workspaceQuoted),
|
|
65
|
-
mode: 0o755,
|
|
66
|
-
label: `.clinerules/hooks/${native}`,
|
|
67
|
-
}));
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=cline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../../src/install/bridges/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,CAAC,MAAM,cAAc,GAA8C;IACrE,CAAC,eAAe,EAAO,WAAW,CAAC;IACnC,CAAC,eAAe,EAAO,YAAY,CAAC;IACpC,CAAC,aAAa,EAAS,cAAc,CAAC;IACtC,CAAC,MAAM,EAAgB,YAAY,CAAC;IACpC,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAC1C,CAAC,eAAe,EAAO,aAAa,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB,EAAE,WAAmB,EAAE,eAAuB;IAC7E,OAAO;;iCAEsB,WAAW,mBAAmB,OAAO;;;;iBAIrD,eAAe;;;;;;;;;kBASd,OAAO;yBACA,WAAW;;;;CAInC,CAAC;AACF,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAkB,CAAC,GAAG,EAAiC,EAAE;IAClF,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,QAAiB;QACvB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;QAC7D,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC;QACpD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,qBAAqB,MAAM,EAAE;KACvC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copilot bridge — `.github/plugin/marketplace.json` plugin registration.
|
|
3
|
-
*
|
|
4
|
-
* Declares the agent-config plugin in GitHub's plugin marketplace
|
|
5
|
-
* format so Copilot-aware tooling can resolve it from the repo.
|
|
6
|
-
*
|
|
7
|
-
* Mirror of `scripts/install.py:ensure_copilot_bridge` (lines 1532–1552).
|
|
8
|
-
*/
|
|
9
|
-
import { join } from 'node:path';
|
|
10
|
-
/** Builder for the Copilot project-scope bridge. */
|
|
11
|
-
export const buildCopilotBridge = (ctx) => ({
|
|
12
|
-
kind: 'json',
|
|
13
|
-
toolId: 'copilot',
|
|
14
|
-
target: join(ctx.projectRoot, '.github', 'plugin', 'marketplace.json'),
|
|
15
|
-
payload: {
|
|
16
|
-
marketplace: {
|
|
17
|
-
name: 'event4u-agent-marketplace',
|
|
18
|
-
plugins: [
|
|
19
|
-
{
|
|
20
|
-
id: 'agent-config@event4u',
|
|
21
|
-
repository: 'https://github.com/event4u-app/agent-config',
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
label: '.github/plugin/marketplace.json',
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=copilot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../src/install/bridges/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAkB,CAAC,GAAG,EAAoB,EAAE,CAAC,CAAC;IACzE,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IACtE,OAAO,EAAE;QACL,WAAW,EAAE;YACT,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE;gBACL;oBACI,EAAE,EAAE,sBAAsB;oBAC1B,UAAU,EAAE,6CAA6C;iBAC5D;aACJ;SACJ;KACJ;IACD,KAAK,EAAE,iCAAiC;CAC3C,CAAC,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cursor bridge — `.cursor/hooks.json` project-scope hooks.
|
|
3
|
-
*
|
|
4
|
-
* Native event names per https://cursor.com/docs/reference/third-party-hooks
|
|
5
|
-
* (camelCase). UserPromptSubmit lives at `beforeSubmitPrompt`. Project
|
|
6
|
-
* hooks fire with the project as cwd, so no trampoline is needed at
|
|
7
|
-
* this scope.
|
|
8
|
-
*
|
|
9
|
-
* Mirror of `scripts/install.py:ensure_cursor_bridge` (lines 1098–1118).
|
|
10
|
-
*/
|
|
11
|
-
import { join } from 'node:path';
|
|
12
|
-
import { dispatchCommand, } from './types.js';
|
|
13
|
-
export const CURSOR_BINDINGS = [
|
|
14
|
-
['session_start', 'sessionStart'],
|
|
15
|
-
['session_end', 'sessionEnd'],
|
|
16
|
-
['stop', 'stop'],
|
|
17
|
-
['user_prompt_submit', 'beforeSubmitPrompt'],
|
|
18
|
-
['post_tool_use', 'postToolUse'],
|
|
19
|
-
];
|
|
20
|
-
/** Builder for the Cursor project-scope bridge. */
|
|
21
|
-
export const buildCursorBridge = (ctx) => {
|
|
22
|
-
const hooks = {};
|
|
23
|
-
for (const [acEvent, native] of CURSOR_BINDINGS) {
|
|
24
|
-
(hooks[native] ??= []).push({ command: dispatchCommand('cursor', acEvent, native) });
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
kind: 'json',
|
|
28
|
-
toolId: 'cursor',
|
|
29
|
-
target: join(ctx.projectRoot, '.cursor', 'hooks.json'),
|
|
30
|
-
payload: { version: 1, hooks },
|
|
31
|
-
label: '.cursor/hooks.json',
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/install/bridges/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAGH,eAAe,GAElB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,eAAe,GAA8C;IACtE,CAAC,eAAe,EAAO,cAAc,CAAC;IACtC,CAAC,aAAa,EAAS,YAAY,CAAC;IACpC,CAAC,MAAM,EAAgB,MAAM,CAAC;IAC9B,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAC5C,CAAC,eAAe,EAAO,aAAa,CAAC;CACxC,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAoB,EAAE;IACtE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;QACtD,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE;QAC9B,KAAK,EAAE,oBAAoB;KAC9B,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gemini CLI bridge — `.gemini/settings.json` project-scope hooks.
|
|
3
|
-
*
|
|
4
|
-
* Gemini's hook payload is a nested
|
|
5
|
-
* `{event: [{matcher, hooks: [{type, command}]}]}` structure. Lifecycle
|
|
6
|
-
* matchers are empty strings; tool events use a regex matcher
|
|
7
|
-
* (`AfterTool` matches all tools with `.*`).
|
|
8
|
-
*
|
|
9
|
-
* Native event names per geminicli.com/docs/hooks/reference/ (PascalCase).
|
|
10
|
-
*
|
|
11
|
-
* Mirror of `scripts/install.py:ensure_gemini_bridge` (lines 1428–1479).
|
|
12
|
-
*/
|
|
13
|
-
import { join } from 'node:path';
|
|
14
|
-
import { dispatchCommand, } from './types.js';
|
|
15
|
-
export const GEMINI_BINDINGS = [
|
|
16
|
-
['session_start', 'SessionStart', ''],
|
|
17
|
-
['session_end', 'SessionEnd', ''],
|
|
18
|
-
['stop', 'AfterAgent', ''],
|
|
19
|
-
['user_prompt_submit', 'BeforeAgent', ''],
|
|
20
|
-
['post_tool_use', 'AfterTool', '.*'],
|
|
21
|
-
];
|
|
22
|
-
/** Builder for the Gemini CLI project-scope bridge. */
|
|
23
|
-
export const buildGeminiBridge = (ctx) => {
|
|
24
|
-
const hooks = {};
|
|
25
|
-
for (const [acEvent, native, matcher] of GEMINI_BINDINGS) {
|
|
26
|
-
(hooks[native] ??= []).push({
|
|
27
|
-
matcher,
|
|
28
|
-
hooks: [{ type: 'command', command: dispatchCommand('gemini', acEvent, native) }],
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
kind: 'json',
|
|
33
|
-
toolId: 'gemini',
|
|
34
|
-
target: join(ctx.projectRoot, '.gemini', 'settings.json'),
|
|
35
|
-
payload: { hooks },
|
|
36
|
-
label: '.gemini/settings.json',
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/install/bridges/gemini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAGH,eAAe,GAElB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,eAAe,GAAsD;IAC9E,CAAC,eAAe,EAAO,cAAc,EAAE,EAAE,CAAC;IAC1C,CAAC,aAAa,EAAS,YAAY,EAAI,EAAE,CAAC;IAC1C,CAAC,MAAM,EAAgB,YAAY,EAAI,EAAE,CAAC;IAC1C,CAAC,oBAAoB,EAAE,aAAa,EAAG,EAAE,CAAC;IAC1C,CAAC,eAAe,EAAO,WAAW,EAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAoB,EAAE;IACtE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC;QACvD,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;SACpF,CAAC,CAAC;IACP,CAAC;IACD,OAAO;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC;QACzD,OAAO,EAAE,EAAE,KAAK,EAAE;QAClB,KAAK,EAAE,uBAAuB;KACjC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bridge registry — Phase A6 entrypoint.
|
|
3
|
-
*
|
|
4
|
-
* Maps stable tool IDs to pure builder functions. Callers pass a
|
|
5
|
-
* {@link BridgeContext} plus a list of enabled tool IDs and receive a
|
|
6
|
-
* flat list of {@link BridgeOutput}s ready for the apply layer.
|
|
7
|
-
*
|
|
8
|
-
* Order of `generateProjectBridges` output is **stable** — it follows
|
|
9
|
-
* the registration order below, which mirrors the Python install order
|
|
10
|
-
* (`scripts/install.py:_deploy_tool_content` dispatch table). Snapshot
|
|
11
|
-
* tests rely on this ordering.
|
|
12
|
-
*
|
|
13
|
-
* To add a tool:
|
|
14
|
-
* 1. Implement a `buildXxxBridge: BridgeBuilder` in `bridges/xxx.ts`.
|
|
15
|
-
* 2. Register it under its stable tool ID in {@link BRIDGE_REGISTRY}.
|
|
16
|
-
* 3. Add a snapshot fixture under `tests/install/bridges/__snapshots__/`.
|
|
17
|
-
*/
|
|
18
|
-
import { buildAugmentBridge } from './augment.js';
|
|
19
|
-
import { buildClaudeBridge } from './claude.js';
|
|
20
|
-
import { buildClineBridge } from './cline.js';
|
|
21
|
-
import { buildCopilotBridge } from './copilot.js';
|
|
22
|
-
import { buildCursorBridge } from './cursor.js';
|
|
23
|
-
import { buildGeminiBridge } from './gemini.js';
|
|
24
|
-
import { buildAiderBridge, buildClaudeDesktopBridge, buildCodexBridge, buildContinueBridge, buildJetbrainsBridge, buildKilocodeBridge, buildKiroBridge, buildRoocodeBridge, buildZedBridge, } from './markers.js';
|
|
25
|
-
import { buildVscodeBridge } from './vscode.js';
|
|
26
|
-
import { buildWindsurfBridge } from './windsurf.js';
|
|
27
|
-
/**
|
|
28
|
-
* Stable tool ID → builder map. Order matches Python install dispatch.
|
|
29
|
-
*
|
|
30
|
-
* Using a tuple list (not a plain object) keeps iteration order
|
|
31
|
-
* deterministic across runtimes and survives accidental key reordering
|
|
32
|
-
* by tooling.
|
|
33
|
-
*/
|
|
34
|
-
export const BRIDGE_REGISTRY = [
|
|
35
|
-
// Substrate / plugin enablement.
|
|
36
|
-
['vscode', buildVscodeBridge],
|
|
37
|
-
['augment', buildAugmentBridge],
|
|
38
|
-
// Hook dispatchers (JSON).
|
|
39
|
-
['claude', buildClaudeBridge],
|
|
40
|
-
['cursor', buildCursorBridge],
|
|
41
|
-
['windsurf', buildWindsurfBridge],
|
|
42
|
-
['gemini', buildGeminiBridge],
|
|
43
|
-
// Multi-script.
|
|
44
|
-
['cline', buildClineBridge],
|
|
45
|
-
// Plugin registration.
|
|
46
|
-
['copilot', buildCopilotBridge],
|
|
47
|
-
// Informational markers.
|
|
48
|
-
['roocode', buildRoocodeBridge],
|
|
49
|
-
['claude-desktop', buildClaudeDesktopBridge],
|
|
50
|
-
['aider', buildAiderBridge],
|
|
51
|
-
['codex', buildCodexBridge],
|
|
52
|
-
['continue', buildContinueBridge],
|
|
53
|
-
['kilocode', buildKilocodeBridge],
|
|
54
|
-
['zed', buildZedBridge],
|
|
55
|
-
['jetbrains', buildJetbrainsBridge],
|
|
56
|
-
['kiro', buildKiroBridge],
|
|
57
|
-
];
|
|
58
|
-
/** Set of every registered tool ID (cached for fast membership tests). */
|
|
59
|
-
export const KNOWN_TOOL_IDS = new Set(BRIDGE_REGISTRY.map(([id]) => id));
|
|
60
|
-
/**
|
|
61
|
-
* Generate the full list of bridge outputs for a project.
|
|
62
|
-
*
|
|
63
|
-
* @param ctx Project root + package type.
|
|
64
|
-
* @param enabledIds Tool IDs to include. Unknown IDs are silently
|
|
65
|
-
* ignored — the detect/plan layer is the gatekeeper
|
|
66
|
-
* for enable/disable decisions, not the registry.
|
|
67
|
-
* @returns Flat list of outputs in registry order. Cline (and
|
|
68
|
-
* any future multi-output builder) contributes
|
|
69
|
-
* multiple entries; all others contribute one.
|
|
70
|
-
*/
|
|
71
|
-
export function generateProjectBridges(ctx, enabledIds) {
|
|
72
|
-
const enabled = enabledIds instanceof Set ? enabledIds : new Set(enabledIds);
|
|
73
|
-
const out = [];
|
|
74
|
-
for (const [toolId, builder] of BRIDGE_REGISTRY) {
|
|
75
|
-
if (!enabled.has(toolId))
|
|
76
|
-
continue;
|
|
77
|
-
const result = builder(ctx);
|
|
78
|
-
if (Array.isArray(result)) {
|
|
79
|
-
out.push(...result);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
out.push(result);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return out;
|
|
86
|
-
}
|
|
87
|
-
export { dispatchCommand, } from './types.js';
|
|
88
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/bridges/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoD;IAC5E,iCAAiC;IACjC,CAAC,QAAQ,EAAU,iBAAiB,CAAC;IACrC,CAAC,SAAS,EAAS,kBAAkB,CAAC;IACtC,2BAA2B;IAC3B,CAAC,QAAQ,EAAU,iBAAiB,CAAC;IACrC,CAAC,QAAQ,EAAU,iBAAiB,CAAC;IACrC,CAAC,UAAU,EAAQ,mBAAmB,CAAC;IACvC,CAAC,QAAQ,EAAU,iBAAiB,CAAC;IACrC,gBAAgB;IAChB,CAAC,OAAO,EAAW,gBAAgB,CAAC;IACpC,uBAAuB;IACvB,CAAC,SAAS,EAAS,kBAAkB,CAAC;IACtC,yBAAyB;IACzB,CAAC,SAAS,EAAS,kBAAkB,CAAC;IACtC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IAC5C,CAAC,OAAO,EAAW,gBAAgB,CAAC;IACpC,CAAC,OAAO,EAAW,gBAAgB,CAAC;IACpC,CAAC,UAAU,EAAQ,mBAAmB,CAAC;IACvC,CAAC,UAAU,EAAQ,mBAAmB,CAAC;IACvC,CAAC,KAAK,EAAa,cAAc,CAAC;IAClC,CAAC,WAAW,EAAO,oBAAoB,CAAC;IACxC,CAAC,MAAM,EAAY,eAAe,CAAC;CACtC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CACtD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CACpC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAClC,GAAkB,EAClB,UAAuD;IAEvD,MAAM,OAAO,GAAG,UAAU,YAAY,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,MAAsB,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAGD,OAAO,EAEH,eAAe,GAIlB,MAAM,YAAY,CAAC"}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker content — verbatim payload for every marker-style bridge.
|
|
3
|
-
*
|
|
4
|
-
* Mirror of the `*_MARKER` string constants in
|
|
5
|
-
* `scripts/install.py` (lines 1561–1896). Kept in a separate module so
|
|
6
|
-
* snapshot tests can pin copy without dragging the builder closures in.
|
|
7
|
-
*/
|
|
8
|
-
export const ROOCODE_MARKER = `# Agent Config bridge
|
|
9
|
-
|
|
10
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
11
|
-
|
|
12
|
-
Roo Code reads \`.roo/rules/*.md\` as system-level instructions. The
|
|
13
|
-
canonical rule and skill source lives under \`.augment/\` (Augment
|
|
14
|
-
portability mirror — see \`AGENTS.md\` for orientation).
|
|
15
|
-
|
|
16
|
-
## How to use
|
|
17
|
-
|
|
18
|
-
- These rules load automatically on every Roo Code session — no
|
|
19
|
-
manual action required.
|
|
20
|
-
- Switch Roo Code modes (Architect / Code / Ask / Debug / Custom)
|
|
21
|
-
via the mode switcher to invoke different cognition profiles;
|
|
22
|
-
every mode still sees these rules.
|
|
23
|
-
- Slash commands and skills live under \`.augment/commands/\` and
|
|
24
|
-
\`.augment/skills/\`. Roo Code does not register them natively —
|
|
25
|
-
invoke them by name in chat (e.g. *"run the create-pr command"*).
|
|
26
|
-
|
|
27
|
-
See \`docs/setup/per-ide/roocode.md\` for the full activation guide.
|
|
28
|
-
|
|
29
|
-
Run \`./agent-config --help\` for available commands.
|
|
30
|
-
`;
|
|
31
|
-
export const CLAUDE_DESKTOP_MARKER = `# Agent Config bridge — Claude Desktop
|
|
32
|
-
|
|
33
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
34
|
-
|
|
35
|
-
Claude Desktop is a **global-scope** tool — it reads config from
|
|
36
|
-
\`~/Library/Application Support/Claude/\` (macOS) and does not
|
|
37
|
-
auto-discover project files. This marker is informational only.
|
|
38
|
-
|
|
39
|
-
To wire Claude Desktop to this project's rules, run:
|
|
40
|
-
\`npx @event4u/agent-config init --ai claude-desktop --global\`
|
|
41
|
-
|
|
42
|
-
Canonical rule and skill source: \`.augment/\` (see \`AGENTS.md\`).
|
|
43
|
-
`;
|
|
44
|
-
export const AIDER_MARKER = `# Agent Config bridge — Aider
|
|
45
|
-
|
|
46
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
47
|
-
|
|
48
|
-
Aider does not auto-discover this file. To activate it, add the
|
|
49
|
-
following to \`.aider.conf.yml\` (create if missing):
|
|
50
|
-
|
|
51
|
-
\`\`\`yaml
|
|
52
|
-
read:
|
|
53
|
-
- .aider/agent-config.md
|
|
54
|
-
\`\`\`
|
|
55
|
-
|
|
56
|
-
Or pass \`--read .aider/agent-config.md\` on the command line.
|
|
57
|
-
|
|
58
|
-
Canonical rule and skill source: \`.augment/\` (see \`AGENTS.md\`).
|
|
59
|
-
`;
|
|
60
|
-
export const CODEX_MARKER = `# Agent Config bridge — Codex CLI
|
|
61
|
-
|
|
62
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
63
|
-
|
|
64
|
-
Codex CLI auto-discovers \`AGENTS.md\` at the project root — that file
|
|
65
|
-
is the canonical entry point. This marker is informational and tells
|
|
66
|
-
developers where the rules and skills live.
|
|
67
|
-
|
|
68
|
-
Canonical rule and skill source: \`.augment/\` (see project \`AGENTS.md\`).
|
|
69
|
-
`;
|
|
70
|
-
export const CONTINUE_MARKER = `# Agent Config bridge — Continue.dev
|
|
71
|
-
|
|
72
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
73
|
-
|
|
74
|
-
Continue.dev auto-discovers \`.continue/rules/*.md\` as system-level
|
|
75
|
-
rules per session. The canonical rule and skill source lives under
|
|
76
|
-
\`.augment/\` (Augment portability mirror — see \`AGENTS.md\` for
|
|
77
|
-
orientation).
|
|
78
|
-
`;
|
|
79
|
-
export const KILOCODE_MARKER = `# Agent Config bridge — Kilo Code
|
|
80
|
-
|
|
81
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
82
|
-
|
|
83
|
-
Kilo Code auto-discovers \`.kilocode/rules/*.md\` as system-level rules
|
|
84
|
-
per session. The canonical rule and skill source lives under
|
|
85
|
-
\`.augment/\` (Augment portability mirror — see \`AGENTS.md\` for
|
|
86
|
-
orientation).
|
|
87
|
-
|
|
88
|
-
## How to use
|
|
89
|
-
|
|
90
|
-
- These rules load automatically on every Kilo Code session — no
|
|
91
|
-
manual action required.
|
|
92
|
-
- Switch Kilo Code modes (Architect / Code / Ask / Debug /
|
|
93
|
-
Orchestrator) via the mode switcher to invoke different
|
|
94
|
-
cognition profiles; every mode still sees these rules.
|
|
95
|
-
- Slash commands and skills live under \`.augment/commands/\` and
|
|
96
|
-
\`.augment/skills/\`. Kilo Code does not register them natively —
|
|
97
|
-
invoke them by name in chat (e.g. *"run the create-pr command"*).
|
|
98
|
-
|
|
99
|
-
See \`docs/setup/per-ide/kilocode.md\` for the full activation guide.
|
|
100
|
-
`;
|
|
101
|
-
export const ZED_MARKER = `# Agent Config bridge — Zed
|
|
102
|
-
|
|
103
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
104
|
-
|
|
105
|
-
Zed reads \`.rules\` at the project root as system-level instructions —
|
|
106
|
-
that file is the canonical entry point. This marker is informational
|
|
107
|
-
and tells developers where the rules and skills live.
|
|
108
|
-
|
|
109
|
-
To activate agent-config under Zed, point Zed's \`.rules\` at the
|
|
110
|
-
canonical source (or symlink it):
|
|
111
|
-
|
|
112
|
-
\`\`\`
|
|
113
|
-
# Append to .rules at project root
|
|
114
|
-
@.augment/AGENTS.md
|
|
115
|
-
\`\`\`
|
|
116
|
-
|
|
117
|
-
Canonical rule and skill source: \`.augment/\` (see \`AGENTS.md\`).
|
|
118
|
-
`;
|
|
119
|
-
export const JETBRAINS_MARKER = `# Agent Config bridge — JetBrains AI Assistant
|
|
120
|
-
|
|
121
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
122
|
-
|
|
123
|
-
JetBrains AI Assistant reads custom prompts and guidelines from
|
|
124
|
-
project-level config (\`.idea/\`) and user-scope settings. This marker
|
|
125
|
-
is informational — to wire agent-config into JetBrains AI, point the
|
|
126
|
-
assistant's custom-prompts path at \`.augment/\` or copy the relevant
|
|
127
|
-
rules into your JetBrains profile.
|
|
128
|
-
|
|
129
|
-
Canonical rule and skill source: \`.augment/\` (see \`AGENTS.md\`).
|
|
130
|
-
`;
|
|
131
|
-
export const KIRO_MARKER = `# Agent Config bridge — Kiro
|
|
132
|
-
|
|
133
|
-
This file marks the project as an \`event4u/agent-config\` consumer.
|
|
134
|
-
|
|
135
|
-
Kiro auto-discovers \`.kiro/steering/*.md\` as steering documents per
|
|
136
|
-
session. The canonical rule and skill source lives under \`.augment/\`
|
|
137
|
-
(Augment portability mirror — see \`AGENTS.md\` for orientation).
|
|
138
|
-
|
|
139
|
-
## How to use
|
|
140
|
-
|
|
141
|
-
- Steering documents load automatically on every Kiro session — no
|
|
142
|
-
manual action required.
|
|
143
|
-
- For structured, plan-first work, use Kiro's **Spec** workflow
|
|
144
|
-
(the agent produces a spec → tasks → implementation under your
|
|
145
|
-
review). For free-form work, use **Vibe**. Both honor these
|
|
146
|
-
steering documents.
|
|
147
|
-
- Slash commands and skills live under \`.augment/commands/\` and
|
|
148
|
-
\`.augment/skills/\`. Kiro does not register them natively —
|
|
149
|
-
invoke them by name in chat (e.g. *"run the create-pr command"*).
|
|
150
|
-
|
|
151
|
-
See \`docs/setup/per-ide/kiro.md\` for the full activation guide.
|
|
152
|
-
`;
|
|
153
|
-
//# sourceMappingURL=marker-content.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marker-content.js","sourceRoot":"","sources":["../../../src/install/bridges/marker-content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;CAS3B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;CAQ9B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;CAiBzB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAW/B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker bridges — informational `.md` files for AI tools without a
|
|
3
|
-
* programmatic hook surface (or with one we deliberately do not touch).
|
|
4
|
-
*
|
|
5
|
-
* Each builder drops a single UTF-8 marker pointing developers at the
|
|
6
|
-
* canonical rule source under `.augment/`. Markers are static — no
|
|
7
|
-
* dispatcher wiring, no JSON merge. Content lives next to the builder
|
|
8
|
-
* so snapshot tests pin both shape and copy verbatim.
|
|
9
|
-
*
|
|
10
|
-
* Mirrors `scripts/install.py:ensure_{roocode,claude_desktop,aider,
|
|
11
|
-
* codex,continue,kilocode,zed,jetbrains,kiro}_bridge` (lines 1555–1913).
|
|
12
|
-
*/
|
|
13
|
-
import { join } from 'node:path';
|
|
14
|
-
import { AIDER_MARKER, CLAUDE_DESKTOP_MARKER, CODEX_MARKER, CONTINUE_MARKER, JETBRAINS_MARKER, KILOCODE_MARKER, KIRO_MARKER, ROOCODE_MARKER, ZED_MARKER, } from './marker-content.js';
|
|
15
|
-
function marker(toolId, relPath, content) {
|
|
16
|
-
return (ctx) => ({
|
|
17
|
-
kind: 'marker',
|
|
18
|
-
toolId,
|
|
19
|
-
target: join(ctx.projectRoot, ...relPath),
|
|
20
|
-
content,
|
|
21
|
-
label: relPath.join('/'),
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/** `.roo/rules/agent-config.md` — Roo Code marker. */
|
|
25
|
-
export const buildRoocodeBridge = marker('roocode', ['.roo', 'rules', 'agent-config.md'], ROOCODE_MARKER);
|
|
26
|
-
/** `.claude-desktop/agent-config.md` — Claude Desktop informational marker. */
|
|
27
|
-
export const buildClaudeDesktopBridge = marker('claude-desktop', ['.claude-desktop', 'agent-config.md'], CLAUDE_DESKTOP_MARKER);
|
|
28
|
-
/** `.aider/agent-config.md` — Aider marker (no `.aider.conf.yml` mutation). */
|
|
29
|
-
export const buildAiderBridge = marker('aider', ['.aider', 'agent-config.md'], AIDER_MARKER);
|
|
30
|
-
/** `.codex/agent-config.md` — OpenAI Codex CLI marker (AGENTS.md is canonical). */
|
|
31
|
-
export const buildCodexBridge = marker('codex', ['.codex', 'agent-config.md'], CODEX_MARKER);
|
|
32
|
-
/** `.continue/rules/agent-config.md` — Continue.dev marker. */
|
|
33
|
-
export const buildContinueBridge = marker('continue', ['.continue', 'rules', 'agent-config.md'], CONTINUE_MARKER);
|
|
34
|
-
/** `.kilocode/rules/agent-config.md` — Kilo Code marker. */
|
|
35
|
-
export const buildKilocodeBridge = marker('kilocode', ['.kilocode', 'rules', 'agent-config.md'], KILOCODE_MARKER);
|
|
36
|
-
/** `.zed/agent-config.md` — Zed informational marker. */
|
|
37
|
-
export const buildZedBridge = marker('zed', ['.zed', 'agent-config.md'], ZED_MARKER);
|
|
38
|
-
/** `.jetbrains/agent-config.md` — JetBrains AI informational marker. */
|
|
39
|
-
export const buildJetbrainsBridge = marker('jetbrains', ['.jetbrains', 'agent-config.md'], JETBRAINS_MARKER);
|
|
40
|
-
/** `.kiro/steering/agent-config.md` — Kiro marker. */
|
|
41
|
-
export const buildKiroBridge = marker('kiro', ['.kiro', 'steering', 'agent-config.md'], KIRO_MARKER);
|
|
42
|
-
//# sourceMappingURL=markers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../../src/install/bridges/markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,UAAU,GACb,MAAM,qBAAqB,CAAC;AAE7B,SAAS,MAAM,CACX,MAAc,EACd,OAA8B,EAC9B,OAAe;IAEf,OAAO,CAAC,GAAG,EAAsB,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC;QACzC,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3B,CAAC,CAAC;AACP,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CACpC,SAAS,EACT,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,EACpC,cAAc,CACjB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC1C,gBAAgB,EAChB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EACtC,qBAAqB,CACxB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAClC,OAAO,EACP,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAC7B,YAAY,CACf,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAClC,OAAO,EACP,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAC7B,YAAY,CACf,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CACrC,UAAU,EACV,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,EACzC,eAAe,CAClB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CACrC,UAAU,EACV,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,EACzC,eAAe,CAClB,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAChC,KAAK,EACL,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3B,UAAU,CACb,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CACtC,WAAW,EACX,CAAC,YAAY,EAAE,iBAAiB,CAAC,EACjC,gBAAgB,CACnB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CACjC,MAAM,EACN,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,EACxC,WAAW,CACd,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bridge builder contract — Phase A6.
|
|
3
|
-
*
|
|
4
|
-
* Each AI tool (Claude Code, Cursor, Cline, Windsurf, Copilot, …) gets
|
|
5
|
-
* one builder function that takes a {@link BridgeContext} and returns a
|
|
6
|
-
* {@link BridgeOutput}. Output is **declarative** — the apply layer
|
|
7
|
-
* decides between byte-merge (`mergeJsonContent`) and overwrite based
|
|
8
|
-
* on the {@link BridgeOutput.kind} discriminator.
|
|
9
|
-
*
|
|
10
|
-
* Pure functions:
|
|
11
|
-
* - No filesystem reads inside builders.
|
|
12
|
-
* - No string interpolation against env-vars or `Date.now()` — the
|
|
13
|
-
* snapshot tests rely on deterministic output.
|
|
14
|
-
* - Path resolution uses `bridges/paths.ts` helpers, not `path.join`
|
|
15
|
-
* scattered across bridges.
|
|
16
|
-
*
|
|
17
|
-
* Mirrors `scripts/install.py:749-1913` (the `# --- Bridge generators ---`
|
|
18
|
-
* block). Side effects from the Python `merge_json_file` / `write_file`
|
|
19
|
-
* calls move into the apply layer (Phase A4 + A5).
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Shape of the `./agent-config dispatch:hook` invocation embedded in
|
|
23
|
-
* every hook-dispatcher bridge.
|
|
24
|
-
*
|
|
25
|
-
* Single source of truth so the snapshot tests can assert the command
|
|
26
|
-
* string contract without re-implementing the formatter per bridge.
|
|
27
|
-
*/
|
|
28
|
-
export function dispatchCommand(platform, acEvent, native) {
|
|
29
|
-
return `./agent-config dispatch:hook --platform ${platform} --event ${acEvent} --native-event ${native}`;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/install/bridges/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA+EH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAgB,EAAE,MAAc;IAC9E,OAAO,2CAA2C,QAAQ,YAAY,OAAO,mBAAmB,MAAM,EAAE,CAAC;AAC7G,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VSCode bridge — `.vscode/settings.json` plugin location wiring.
|
|
3
|
-
*
|
|
4
|
-
* Substrate bridge — declares the chat plugin location based on the
|
|
5
|
-
* detected package type. NPM consumers resolve through node_modules;
|
|
6
|
-
* other ecosystems use the bundled `./plugin/agent-config` directory.
|
|
7
|
-
*
|
|
8
|
-
* Mirror of `scripts/install.py:ensure_vscode_bridge` (lines 876–885).
|
|
9
|
-
*/
|
|
10
|
-
import { join } from 'node:path';
|
|
11
|
-
const PLUGIN_PATHS = {
|
|
12
|
-
npm: './node_modules/@event4u/agent-config/plugin/agent-config',
|
|
13
|
-
};
|
|
14
|
-
const DEFAULT_PLUGIN_PATH = './plugin/agent-config';
|
|
15
|
-
/** Builder for the VSCode project-scope bridge. */
|
|
16
|
-
export const buildVscodeBridge = (ctx) => {
|
|
17
|
-
const pluginPath = PLUGIN_PATHS[ctx.packageType] ?? DEFAULT_PLUGIN_PATH;
|
|
18
|
-
return {
|
|
19
|
-
kind: 'json',
|
|
20
|
-
toolId: 'vscode',
|
|
21
|
-
target: join(ctx.projectRoot, '.vscode', 'settings.json'),
|
|
22
|
-
payload: { 'chat.pluginLocations': { [pluginPath]: true } },
|
|
23
|
-
label: '.vscode/settings.json',
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=vscode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../../src/install/bridges/vscode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,YAAY,GAAqC;IACnD,GAAG,EAAE,0DAA0D;CAClE,CAAC;AAEF,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAoB,EAAE;IACtE,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC;IACxE,OAAO;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC;QACzD,OAAO,EAAE,EAAE,sBAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;QAC3D,KAAK,EAAE,uBAAuB;KACjC,CAAC;AACN,CAAC,CAAC"}
|