@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.
Files changed (66) hide show
  1. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/CHANGELOG.md +51 -0
  4. package/README.md +3 -2
  5. package/dist/cli/agent-config.js +9 -0
  6. package/dist/cli/agent-config.js.map +1 -1
  7. package/dist/cli/commands/uiServe.js +1 -1
  8. package/dist/cli/commands/uiServe.js.map +1 -1
  9. package/dist/cli/initRouting.js +101 -0
  10. package/dist/cli/initRouting.js.map +1 -0
  11. package/dist/discovery/deprecation-report.md +1 -1
  12. package/dist/discovery/discovery-manifest.json +1 -1
  13. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  14. package/dist/discovery/discovery-manifest.summary.md +1 -1
  15. package/dist/discovery/orphan-report.md +1 -1
  16. package/dist/discovery/packs.json +1 -1
  17. package/dist/discovery/trust-report.md +1 -1
  18. package/dist/discovery/workspaces.json +1 -1
  19. package/dist/mcp/registry-manifest.json +1 -1
  20. package/dist/server/routes/install.js +11 -200
  21. package/dist/server/routes/install.js.map +1 -1
  22. package/dist/server/routes/wizard.js +167 -26
  23. package/dist/server/routes/wizard.js.map +1 -1
  24. package/dist/server/schemas/settings.js +1 -0
  25. package/dist/server/schemas/settings.js.map +1 -1
  26. package/dist/ui/assets/index-BDAhhpDV.js +40 -0
  27. package/dist/ui/assets/index-BDAhhpDV.js.map +1 -0
  28. package/dist/ui/index.html +1 -1
  29. package/docs/contracts/gui-wizard.md +116 -96
  30. package/docs/decisions/ADR-021-deployment-shape.md +2 -2
  31. package/docs/deploy/connector-setup.md +2 -2
  32. package/docs/deploy/policy-cookbook.md +2 -2
  33. package/package.json +1 -1
  34. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  35. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  36. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  37. package/scripts/install.py +197 -34
  38. package/scripts/lint_framework_leakage_allowlist.json +8 -0
  39. package/dist/install/apply.js +0 -238
  40. package/dist/install/apply.js.map +0 -1
  41. package/dist/install/bridges/augment.js +0 -20
  42. package/dist/install/bridges/augment.js.map +0 -1
  43. package/dist/install/bridges/claude.js +0 -44
  44. package/dist/install/bridges/claude.js.map +0 -1
  45. package/dist/install/bridges/cline.js +0 -69
  46. package/dist/install/bridges/cline.js.map +0 -1
  47. package/dist/install/bridges/copilot.js +0 -28
  48. package/dist/install/bridges/copilot.js.map +0 -1
  49. package/dist/install/bridges/cursor.js +0 -34
  50. package/dist/install/bridges/cursor.js.map +0 -1
  51. package/dist/install/bridges/gemini.js +0 -39
  52. package/dist/install/bridges/gemini.js.map +0 -1
  53. package/dist/install/bridges/index.js +0 -88
  54. package/dist/install/bridges/index.js.map +0 -1
  55. package/dist/install/bridges/marker-content.js +0 -153
  56. package/dist/install/bridges/marker-content.js.map +0 -1
  57. package/dist/install/bridges/markers.js +0 -42
  58. package/dist/install/bridges/markers.js.map +0 -1
  59. package/dist/install/bridges/types.js +0 -31
  60. package/dist/install/bridges/types.js.map +0 -1
  61. package/dist/install/bridges/vscode.js +0 -26
  62. package/dist/install/bridges/vscode.js.map +0 -1
  63. package/dist/install/bridges/windsurf.js +0 -35
  64. package/dist/install/bridges/windsurf.js.map +0 -1
  65. package/dist/ui/assets/index-DLEuEW1V.js +0 -35
  66. 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"}