@amsterdamdatalabs/enact-extensions 0.1.12 → 0.1.24

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 (147) hide show
  1. package/README.md +11 -12
  2. package/dist/create/enact.js +1 -1
  3. package/dist/create/enact.js.map +1 -1
  4. package/dist/create/index.d.ts +4 -3
  5. package/dist/create/index.d.ts.map +1 -1
  6. package/dist/create/index.js +9 -2
  7. package/dist/create/index.js.map +1 -1
  8. package/dist/index.d.ts +8 -6
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -3
  11. package/dist/index.js.map +1 -1
  12. package/dist/install.d.ts +5 -0
  13. package/dist/install.d.ts.map +1 -1
  14. package/dist/install.js +10 -3
  15. package/dist/install.js.map +1 -1
  16. package/dist/internal/agents.d.ts +6 -1
  17. package/dist/internal/agents.d.ts.map +1 -1
  18. package/dist/internal/agents.js +8 -4
  19. package/dist/internal/agents.js.map +1 -1
  20. package/dist/internal/claude.d.ts +24 -0
  21. package/dist/internal/claude.d.ts.map +1 -1
  22. package/dist/internal/claude.js +99 -0
  23. package/dist/internal/claude.js.map +1 -1
  24. package/dist/internal/platform.d.ts +3 -1
  25. package/dist/internal/platform.d.ts.map +1 -1
  26. package/dist/internal/platform.js +7 -1
  27. package/dist/internal/platform.js.map +1 -1
  28. package/dist/internal/types.d.ts +2 -1
  29. package/dist/internal/types.d.ts.map +1 -1
  30. package/dist/principles.d.ts +28 -0
  31. package/dist/principles.d.ts.map +1 -0
  32. package/dist/principles.js +159 -0
  33. package/dist/principles.js.map +1 -0
  34. package/extensions/dev-state/.agents/plugin.json +2 -1
  35. package/extensions/enact-context/.agents/plugin.json +2 -1
  36. package/extensions/enact-context/hooks/hooks.json +0 -10
  37. package/extensions/enact-context/skills/enact-context/SKILL.md +14 -12
  38. package/extensions/enact-context/skills/enact-context/scripts/install.sh +7 -7
  39. package/extensions/enact-core/.agents/plugin.json +2 -1
  40. package/extensions/enact-core/OPERATING-PRINCIPLES.md +7 -0
  41. package/extensions/enact-core/hooks/hooks.json +12 -0
  42. package/extensions/enact-evolve/.agents/plugin.json +47 -0
  43. package/extensions/enact-evolve/agents/evolve-session-analyst.toml +37 -0
  44. package/extensions/enact-evolve/skills/session-analysis/SKILL.md +98 -0
  45. package/extensions/enact-evolve/skills/session-analysis/scripts/run-evolve-analysis.sh +343 -0
  46. package/extensions/enact-factory/.agents/plugin.json +2 -2
  47. package/extensions/enact-factory/agents/architect.toml +9 -5
  48. package/extensions/enact-factory/agents/code-reviewer.toml +9 -5
  49. package/extensions/enact-factory/agents/critic.toml +9 -5
  50. package/extensions/enact-factory/agents/executor.toml +4 -1
  51. package/extensions/enact-factory/agents/explore.toml +4 -1
  52. package/extensions/enact-factory/agents/planner.toml +4 -1
  53. package/extensions/enact-factory/agents/verifier.toml +9 -5
  54. package/extensions/enact-factory/skills/advisor/SKILL.md +82 -0
  55. package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +6 -1
  56. package/extensions/enact-factory/skills/autonomous-runner/SKILL.md +347 -0
  57. package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +42 -15
  58. package/extensions/enact-factory/skills/committee/SKILL.md +80 -0
  59. package/extensions/enact-factory/skills/deep-interview/SKILL.md +9 -13
  60. package/extensions/enact-factory/skills/drive-loop/SKILL.md +161 -31
  61. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +26 -6
  62. package/extensions/enact-factory/skills/handoff/SKILL.md +72 -0
  63. package/extensions/enact-factory/skills/hyperplan/SKILL.md +11 -3
  64. package/extensions/enact-factory/skills/looplan/SKILL.md +34 -17
  65. package/extensions/enact-factory/skills/plan/SKILL.md +40 -8
  66. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +6 -1
  67. package/extensions/enact-factory/skills/research/SKILL.md +14 -4
  68. package/extensions/enact-factory/skills/review/SKILL.md +21 -2
  69. package/extensions/enact-factory/skills/security-research/SKILL.md +5 -2
  70. package/extensions/enact-factory/skills/tdd/SKILL.md +7 -1
  71. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +5 -0
  72. package/extensions/enact-factory/skills/trace/SKILL.md +5 -0
  73. package/extensions/enact-factory/skills/ultraqa/SKILL.md +21 -15
  74. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +5 -0
  75. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +5 -0
  76. package/extensions/enact-loop/.agents/plugin.json +5 -4
  77. package/extensions/enact-loop/scripts/validate.mjs +123 -0
  78. package/extensions/enact-loop/skills/enact-loop/SKILL.md +189 -30
  79. package/extensions/enact-wiki/.agents/plugin.json +2 -1
  80. package/extensions/net-revenue-management/.agents/plugin.json +2 -1
  81. package/extensions/plugin-dev/.agents/plugin.json +2 -1
  82. package/extensions/plugin-dev/skills/start/SKILL.md +3 -3
  83. package/package.json +1 -1
  84. package/scripts/check-hooks.mjs +5 -5
  85. package/scripts/check-principles.mjs +19 -4
  86. package/scripts/enact-extensions.mjs +237 -90
  87. package/scripts/lib/hooks.mjs +61 -217
  88. package/scripts/lib/migrate-artifacts.mjs +144 -0
  89. package/scripts/lib/principles.mjs +109 -0
  90. package/scripts/lib/provision-mcp.mjs +1 -1
  91. package/scripts/lib/run-install.mjs +72 -2
  92. package/scripts/lib/run-prune.mjs +23 -2
  93. package/scripts/lib/run-sync.mjs +4 -1
  94. package/scripts/postinstall.mjs +6 -6
  95. package/scripts/setup-enact-context.sh +20 -15
  96. package/spec/codex.json +5 -0
  97. package/spec/enact.json +3 -3
  98. package/spec/enact.md +1 -4
  99. package/spec/index.json +1 -1
  100. package/extensions/enact-factory/hooks/hooks.json +0 -14
  101. package/extensions/enact-operator/.agents/plugin.json +0 -56
  102. package/extensions/enact-operator/.app.json +0 -3
  103. package/extensions/enact-operator/.mcp.json +0 -10
  104. package/extensions/enact-operator/_taxonomy.md +0 -86
  105. package/extensions/enact-operator/agents/README.md +0 -5
  106. package/extensions/enact-operator/agents/architect.toml +0 -25
  107. package/extensions/enact-operator/agents/code-reviewer.toml +0 -24
  108. package/extensions/enact-operator/agents/critic.toml +0 -30
  109. package/extensions/enact-operator/agents/executor.toml +0 -24
  110. package/extensions/enact-operator/agents/explore.toml +0 -23
  111. package/extensions/enact-operator/agents/planner.toml +0 -24
  112. package/extensions/enact-operator/agents/verifier.toml +0 -24
  113. package/extensions/enact-operator/docs/skill-variants.md +0 -44
  114. package/extensions/enact-operator/hooks/hooks.json +0 -91
  115. package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +0 -50
  116. package/extensions/enact-operator/skills/analyze/SKILL.md +0 -91
  117. package/extensions/enact-operator/skills/ask/SKILL.md +0 -47
  118. package/extensions/enact-operator/skills/autopilot/SKILL.md +0 -170
  119. package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +0 -79
  120. package/extensions/enact-operator/skills/cancel/SKILL.md +0 -99
  121. package/extensions/enact-operator/skills/configure-notifications/SKILL.md +0 -77
  122. package/extensions/enact-operator/skills/deep-interview/SKILL.md +0 -80
  123. package/extensions/enact-operator/skills/doctor/SKILL.md +0 -48
  124. package/extensions/enact-operator/skills/hud/SKILL.md +0 -49
  125. package/extensions/enact-operator/skills/hyperplan/SKILL.md +0 -47
  126. package/extensions/enact-operator/skills/plan/SKILL.md +0 -78
  127. package/extensions/enact-operator/skills/ralph/SKILL.md +0 -201
  128. package/extensions/enact-operator/skills/ralph/gemini.md +0 -18
  129. package/extensions/enact-operator/skills/ralplan/SKILL.md +0 -151
  130. package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +0 -45
  131. package/extensions/enact-operator/skills/research/SKILL.md +0 -74
  132. package/extensions/enact-operator/skills/review/SKILL.md +0 -58
  133. package/extensions/enact-operator/skills/security-research/SKILL.md +0 -54
  134. package/extensions/enact-operator/skills/setup/SKILL.md +0 -91
  135. package/extensions/enact-operator/skills/setup/scripts/install.sh +0 -50
  136. package/extensions/enact-operator/skills/skill/SKILL.md +0 -82
  137. package/extensions/enact-operator/skills/tdd/SKILL.md +0 -59
  138. package/extensions/enact-operator/skills/team/SKILL.md +0 -199
  139. package/extensions/enact-operator/skills/trace/SKILL.md +0 -41
  140. package/extensions/enact-operator/skills/ultragoal/SKILL.md +0 -99
  141. package/extensions/enact-operator/skills/ultraqa/SKILL.md +0 -113
  142. package/extensions/enact-operator/skills/ultrawork/SKILL.md +0 -145
  143. package/extensions/enact-operator/skills/ultrawork/planner.md +0 -28
  144. package/extensions/enact-operator/skills/wiki/SKILL.md +0 -41
  145. package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +0 -51
  146. /package/extensions/{enact-operator → enact-evolve}/assets/icon.png +0 -0
  147. /package/extensions/{enact-operator → enact-evolve}/assets/logo.png +0 -0
@@ -9,8 +9,32 @@ interface KnownMarketplaceEntry {
9
9
  lastUpdated: string;
10
10
  }
11
11
  type KnownMarketplaces = Record<string, KnownMarketplaceEntry>;
12
+ export interface ClaudeCliExecResult {
13
+ status: number;
14
+ stdout: string;
15
+ stderr: string;
16
+ error?: Error;
17
+ }
18
+ export type ClaudeCliExec = (runner: string, args: string[], options?: {
19
+ env?: NodeJS.ProcessEnv;
20
+ }) => ClaudeCliExecResult;
12
21
  export declare function readKnownMarketplaces(claudeHome: string): KnownMarketplaces;
13
22
  export declare function writeKnownMarketplaces(claudeHome: string, data: KnownMarketplaces): void;
23
+ export declare function readEnabledPlugins(claudeHome: string): Record<string, boolean>;
24
+ export declare function claudeCliScope(scope?: string): "user" | "project";
25
+ interface ClaudeListedPlugin {
26
+ id: string;
27
+ enabled?: boolean;
28
+ scope?: string;
29
+ projectPath?: string;
30
+ }
31
+ export declare function listClaudePlugins(claudeHome: string, exec?: ClaudeCliExec): ClaudeListedPlugin[];
32
+ export interface ClaudeActivationResult {
33
+ pluginId: string;
34
+ scope: "user" | "project";
35
+ action: "already_enabled" | "installed" | "enabled";
36
+ }
37
+ export declare function activateClaudePlugin(claudeHome: string, pluginId: string, marketplaceDir: string, scope: string | undefined, exec?: ClaudeCliExec): ClaudeActivationResult;
14
38
  export declare function registerLocalMarketplace(claudeHome: string, marketplaceName: string, marketplaceDir: string): void;
15
39
  export interface ClaudeMarketplacePluginEntry {
16
40
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAM/D,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAQ3E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAIxF;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,IAAI,CAWN;AAYD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,OAAO,EAAE,4BAA4B,EAAE,CAAC;CACzC;AAED,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE5E;AAgCD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAcR;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,IAAI,CAUN"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { spawnSync } from "node:child_process";
1
2
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
3
  import { dirname, join } from "node:path";
3
4
  import { homedir } from "node:os";
@@ -23,6 +24,104 @@ export function writeKnownMarketplaces(claudeHome, data) {
23
24
  mkdirSync(dirname(path), { recursive: true });
24
25
  writeFileSync(path, `${JSON.stringify(data, null, 2)}\n`, "utf8");
25
26
  }
27
+ function readClaudeSettings(claudeHome) {
28
+ const path = join(claudeHome, "settings.json");
29
+ if (!existsSync(path))
30
+ return {};
31
+ try {
32
+ return JSON.parse(readFileSync(path, "utf8"));
33
+ }
34
+ catch {
35
+ return {};
36
+ }
37
+ }
38
+ export function readEnabledPlugins(claudeHome) {
39
+ const settings = readClaudeSettings(claudeHome);
40
+ const raw = settings.enabledPlugins;
41
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
42
+ return {};
43
+ return Object.fromEntries(Object.entries(raw).filter(([, value]) => typeof value === "boolean"));
44
+ }
45
+ export function claudeCliScope(scope) {
46
+ if (scope === "local")
47
+ return "project";
48
+ if (scope === "project")
49
+ return "project";
50
+ return "user";
51
+ }
52
+ function defaultClaudeCliExec(runner, args, options = {}) {
53
+ const result = spawnSync(runner, args, {
54
+ encoding: "utf8",
55
+ env: options.env,
56
+ shell: false,
57
+ });
58
+ return {
59
+ status: result.status ?? (result.error ? 1 : 0),
60
+ stdout: result.stdout ?? "",
61
+ stderr: result.stderr ?? (result.error ? result.error.message : ""),
62
+ error: result.error,
63
+ };
64
+ }
65
+ export function listClaudePlugins(claudeHome, exec = defaultClaudeCliExec) {
66
+ const env = { ...process.env, CLAUDE_CONFIG_DIR: claudeHome };
67
+ const result = exec("claude", ["plugin", "list", "--json"], { env });
68
+ if (result.status !== 0) {
69
+ throw new Error(result.stderr || result.stdout || "claude plugin list failed");
70
+ }
71
+ try {
72
+ const parsed = JSON.parse(result.stdout);
73
+ if (!Array.isArray(parsed)) {
74
+ throw new Error("claude plugin list returned non-array JSON");
75
+ }
76
+ return parsed;
77
+ }
78
+ catch (err) {
79
+ const message = err instanceof Error ? err.message : String(err);
80
+ throw new Error(`claude plugin list returned invalid JSON: ${message}`);
81
+ }
82
+ }
83
+ export function activateClaudePlugin(claudeHome, pluginId, marketplaceDir, scope, exec = defaultClaudeCliExec) {
84
+ const resolvedScope = claudeCliScope(scope);
85
+ const env = { ...process.env, CLAUDE_CONFIG_DIR: claudeHome };
86
+ const run = (args, label) => {
87
+ const result = exec("claude", args, { env });
88
+ if (result.status !== 0) {
89
+ throw new Error(result.stderr || result.stdout || `claude ${label} failed`);
90
+ }
91
+ return result;
92
+ };
93
+ const current = listClaudePlugins(claudeHome, exec)
94
+ .find((plugin) => plugin.id === pluginId && plugin.scope === resolvedScope);
95
+ if (current?.enabled) {
96
+ return { pluginId, scope: resolvedScope, action: "already_enabled" };
97
+ }
98
+ if (!current) {
99
+ const installArgs = ["plugin", "install", pluginId, "--scope", resolvedScope];
100
+ const install = exec("claude", installArgs, { env });
101
+ if (install.status !== 0) {
102
+ run(["plugin", "marketplace", "add", marketplaceDir, "--scope", resolvedScope], "plugin marketplace add");
103
+ run(installArgs, "plugin install");
104
+ }
105
+ }
106
+ else {
107
+ run(["plugin", "enable", pluginId, "--scope", resolvedScope], "plugin enable");
108
+ }
109
+ let after = listClaudePlugins(claudeHome, exec)
110
+ .find((plugin) => plugin.id === pluginId && plugin.scope === resolvedScope);
111
+ if (!after?.enabled) {
112
+ run(["plugin", "enable", pluginId, "--scope", resolvedScope], "plugin enable");
113
+ after = listClaudePlugins(claudeHome, exec)
114
+ .find((plugin) => plugin.id === pluginId && plugin.scope === resolvedScope);
115
+ }
116
+ if (!after?.enabled) {
117
+ throw new Error(`Claude plugin ${pluginId} is not enabled after activation`);
118
+ }
119
+ return {
120
+ pluginId,
121
+ scope: resolvedScope,
122
+ action: current ? "enabled" : "installed",
123
+ };
124
+ }
26
125
  export function registerLocalMarketplace(claudeHome, marketplaceName, marketplaceDir) {
27
126
  const current = readKnownMarketplaces(claudeHome);
28
127
  current[marketplaceName] = {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAuBD,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,IAAI,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAsB,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,IAAuB;IAChF,MAAM,IAAI,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAC3C,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,SAAS,oBAAoB,CAC3B,MAAc,EACd,IAAc,EACd,UAAuC,EAAE;IAEzC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;QACrC,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,OAAsB,oBAAoB;IAE1C,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,2BAA2B,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAA8B,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,QAAgB,EAChB,cAAsB,EACtB,KAAyB,EACzB,OAAsB,oBAAoB;IAE1C,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAE9D,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,KAAa,EAAuB,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC;SAChD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IAE9E,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAC1G,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC;SAC5C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IAE9E,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QACpB,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;QAC/E,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC;aACxC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,eAAuB,EACvB,cAAsB;IAEtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,eAAe,CAAC,GAAG;QACzB,4EAA4E;QAC5E,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;QACrD,eAAe,EAAE,cAAc;QAC/B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IACF,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAwBD,MAAM,UAAU,6BAA6B,CAAC,cAAsB;IAClE,OAAO,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,6BAA6B,CACpC,cAAsB,EACtB,eAAuB;IAEvB,MAAM,IAAI,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuC,CAAC;YAC5F,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,eAAe;gBACpC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACvF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aAC7D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,8BAA8B,CACrC,cAAsB,EACtB,QAAmC;IAEnC,MAAM,IAAI,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC3D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,cAAsB,EACtB,eAAuB,EACvB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,6BAA6B,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAChF,MAAM,KAAK,GAAiC;QAC1C,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,aAAa,UAAU,EAAE;QACjC,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,8BAA8B,CAAC,cAAc,EAAE;QACpD,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,eAAe;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,cAAsB,EACtB,eAAuB,EACvB,UAAkB;IAElB,MAAM,IAAI,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,MAAM,QAAQ,GAAG,6BAA6B,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAChF,8BAA8B,CAAC,cAAc,EAAE;QAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,eAAe;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Platform, TargetPlatform } from "./types.js";
1
+ import type { Platform, ProjectionPlatform, TargetPlatform } from "./types.js";
2
2
  export declare const SPEC_DIR = "spec";
3
3
  export declare const MANIFEST_BY_PLATFORM: Record<Platform, {
4
4
  directory: string;
@@ -16,6 +16,7 @@ export declare const MANIFEST_FIELDS: Record<Platform, readonly string[]>;
16
16
  */
17
17
  export declare const PROJECTION_COMPONENT_FIELDS: Record<Platform, readonly string[]>;
18
18
  export declare const DEFAULT_TARGETS: TargetPlatform[];
19
+ export declare const DEFAULT_PROJECTION_TARGETS: ProjectionPlatform[];
19
20
  export declare const DEFAULT_PATHS: {
20
21
  readonly skills: "./skills/";
21
22
  readonly agents: "./agents/";
@@ -34,4 +35,5 @@ export declare const DEFAULT_MCP_FILENAME: Partial<Record<Platform, string>>;
34
35
  export declare function stripDefaultPathFields(platform: Platform, manifest: Record<string, unknown>): Record<string, unknown>;
35
36
  export declare function manifestRelPath(platform: Platform): string;
36
37
  export declare function isTargetPlatform(value: string): value is TargetPlatform;
38
+ export declare function isProjectionPlatform(value: string): value is ProjectionPlatform;
37
39
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,QAAQ,EACR;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAsB5D,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CA4E/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAsC3E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAAc,EAAkC,CAAC;AAE/E,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AA+BX,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAGlE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAG1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,QAAQ,EACR;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAsB5D,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CA6E/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAuC3E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAAc,EAA2C,CAAC;AAExF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,EAAkC,CAAC;AAE9F,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AA+BX,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAGlE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAG1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E"}
@@ -76,6 +76,7 @@ export const MANIFEST_FIELDS = {
76
76
  "license",
77
77
  "keywords",
78
78
  "skills",
79
+ "agents",
79
80
  "mcpServers",
80
81
  "apps",
81
82
  "hooks",
@@ -132,6 +133,7 @@ export const PROJECTION_COMPONENT_FIELDS = {
132
133
  ],
133
134
  codex: [
134
135
  "skills",
136
+ "agents",
135
137
  "hooks",
136
138
  "mcpServers",
137
139
  "apps",
@@ -145,7 +147,8 @@ export const PROJECTION_COMPONENT_FIELDS = {
145
147
  "mcpServers",
146
148
  ],
147
149
  };
148
- export const DEFAULT_TARGETS = ["claude", "codex", "cursor"];
150
+ export const DEFAULT_TARGETS = ["claude", "codex", "cursor", "enact"];
151
+ export const DEFAULT_PROJECTION_TARGETS = ["claude", "codex", "cursor"];
149
152
  export const DEFAULT_PATHS = {
150
153
  skills: "./skills/",
151
154
  agents: "./agents/",
@@ -210,6 +213,9 @@ export function manifestRelPath(platform) {
210
213
  return `${directory}/${filename}`;
211
214
  }
212
215
  export function isTargetPlatform(value) {
216
+ return value === "claude" || value === "codex" || value === "cursor" || value === "enact";
217
+ }
218
+ export function isProjectionPlatform(value) {
213
219
  return value === "claude" || value === "codex" || value === "cursor";
214
220
  }
215
221
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export type Platform = "enact" | "claude" | "codex" | "cursor";
2
- export type TargetPlatform = Exclude<Platform, "enact">;
2
+ export type ProjectionPlatform = Exclude<Platform, "enact">;
3
+ export type TargetPlatform = Platform;
3
4
  export type PluginManifest = Record<string, unknown>;
4
5
  export type ValidationResult = {
5
6
  ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;KAClD,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;KAClD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;KAClD,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;KAClD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
@@ -0,0 +1,28 @@
1
+ export declare const PRINCIPLES_START_MARKER = "<!-- enact-core:operating-principles START -->";
2
+ export declare const PRINCIPLES_END_MARKER = "<!-- enact-core:operating-principles END -->";
3
+ export declare const SUPPORTED_PRINCIPLES_SURFACES: readonly ["claude", "codex", "cursor", "enact"];
4
+ export type PrinciplesSurface = (typeof SUPPORTED_PRINCIPLES_SURFACES)[number];
5
+ export type BlockStatus = "present" | "missing" | "stale";
6
+ export type ApplyAction = "created" | "updated" | "noop";
7
+ export interface ResolveHostFileOptions {
8
+ claudeHome?: string;
9
+ codexHome?: string;
10
+ cursorHome?: string;
11
+ enactHome?: string;
12
+ local?: boolean;
13
+ cwd?: string;
14
+ }
15
+ export interface ApplyBlockResult {
16
+ changed: boolean;
17
+ action: ApplyAction;
18
+ }
19
+ export interface RemoveBlockResult {
20
+ removed: boolean;
21
+ }
22
+ export declare function resolveHostFile(surface: PrinciplesSurface, opts?: ResolveHostFileOptions): string;
23
+ export declare function defaultDoctrinePath(): string;
24
+ export declare function renderBlock(doctrinePath?: string): string;
25
+ export declare function applyBlock(hostFile: string, block: string): ApplyBlockResult;
26
+ export declare function removeBlock(hostFile: string): RemoveBlockResult;
27
+ export declare function checkBlock(hostFile: string, expectedBlock: string): BlockStatus;
28
+ //# sourceMappingURL=principles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principles.d.ts","sourceRoot":"","sources":["../src/principles.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,uBAAuB,mDACc,CAAC;AACnD,eAAO,MAAM,qBAAqB,iDACc,CAAC;AAEjD,eAAO,MAAM,6BAA6B,iDAKhC,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAgED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,GAAE,sBAA2B,GAChC,MAAM,CAER;AA8CD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,WAAW,CAAC,YAAY,SAAwB,GAAG,MAAM,CAYxE;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,gBAAgB,CAyBlB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAU/D;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,WAAW,CAUb"}
@@ -0,0 +1,159 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ export const PRINCIPLES_START_MARKER = "<!-- enact-core:operating-principles START -->";
6
+ export const PRINCIPLES_END_MARKER = "<!-- enact-core:operating-principles END -->";
7
+ export const SUPPORTED_PRINCIPLES_SURFACES = [
8
+ "claude",
9
+ "codex",
10
+ "cursor",
11
+ "enact",
12
+ ];
13
+ const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
14
+ const DEFAULT_DOCTRINE_PATH = join(packageRoot, "extensions", "enact-core", "OPERATING-PRINCIPLES.md");
15
+ function defaultHome(surface) {
16
+ const home = homedir();
17
+ switch (surface) {
18
+ case "claude":
19
+ return join(home, ".claude");
20
+ case "codex":
21
+ return join(home, ".codex");
22
+ case "enact":
23
+ return join(home, ".enact", "agent");
24
+ case "cursor":
25
+ return join(home, ".cursor");
26
+ default:
27
+ throw new Error(`Unknown surface: ${surface}`);
28
+ }
29
+ }
30
+ function hostFileName(surface) {
31
+ return surface === "claude" ? "CLAUDE.md" : "AGENTS.md";
32
+ }
33
+ function resolveHome(surface, opts = {}) {
34
+ const cwd = opts.cwd ?? process.cwd();
35
+ if (opts.local) {
36
+ switch (surface) {
37
+ case "claude":
38
+ return opts.claudeHome ?? join(cwd, ".claude");
39
+ case "codex":
40
+ return opts.codexHome ?? join(cwd, ".codex");
41
+ case "cursor":
42
+ return opts.cursorHome ?? join(cwd, ".cursor");
43
+ case "enact":
44
+ return opts.enactHome ?? join(cwd, ".enact", "agent");
45
+ default:
46
+ throw new Error(`Unknown surface: ${surface}`);
47
+ }
48
+ }
49
+ switch (surface) {
50
+ case "claude":
51
+ return opts.claudeHome ?? defaultHome("claude");
52
+ case "codex":
53
+ return opts.codexHome ?? defaultHome("codex");
54
+ case "cursor":
55
+ return opts.cursorHome ?? defaultHome("cursor");
56
+ case "enact":
57
+ return opts.enactHome ?? defaultHome("enact");
58
+ default:
59
+ throw new Error(`Unknown surface: ${surface}`);
60
+ }
61
+ }
62
+ export function resolveHostFile(surface, opts = {}) {
63
+ return join(resolveHome(surface, opts), hostFileName(surface));
64
+ }
65
+ function normalizeInner(content) {
66
+ return content.replace(/\r\n/g, "\n").trim();
67
+ }
68
+ function readHostFile(hostFile) {
69
+ if (!existsSync(hostFile))
70
+ return "";
71
+ return readFileSync(hostFile, "utf8");
72
+ }
73
+ function writeHostFile(hostFile, content) {
74
+ try {
75
+ mkdirSync(dirname(hostFile), { recursive: true });
76
+ writeFileSync(hostFile, content, "utf8");
77
+ }
78
+ catch (err) {
79
+ const message = err instanceof Error ? err.message : String(err);
80
+ throw new Error(`Failed to write host file ${hostFile}: ${message}`);
81
+ }
82
+ }
83
+ function extractManagedBlock(content) {
84
+ const start = content.indexOf(PRINCIPLES_START_MARKER);
85
+ if (start === -1)
86
+ return null;
87
+ const end = content.indexOf(PRINCIPLES_END_MARKER, start);
88
+ if (end === -1)
89
+ return null;
90
+ const innerStart = start + PRINCIPLES_START_MARKER.length;
91
+ return {
92
+ start,
93
+ end: end + PRINCIPLES_END_MARKER.length,
94
+ inner: content.slice(innerStart, end),
95
+ };
96
+ }
97
+ function extractInnerFromBlock(block) {
98
+ const managed = extractManagedBlock(block);
99
+ if (!managed) {
100
+ throw new Error("Principles block is missing managed markers");
101
+ }
102
+ return managed.inner;
103
+ }
104
+ export function defaultDoctrinePath() {
105
+ return DEFAULT_DOCTRINE_PATH;
106
+ }
107
+ export function renderBlock(doctrinePath = DEFAULT_DOCTRINE_PATH) {
108
+ if (!existsSync(doctrinePath)) {
109
+ throw new Error(`Doctrine file not found: ${doctrinePath}`);
110
+ }
111
+ const raw = readFileSync(doctrinePath, "utf8").replace(/\r\n/g, "\n").trim();
112
+ const managed = extractManagedBlock(raw);
113
+ if (!managed) {
114
+ throw new Error(`Doctrine file missing managed markers: ${doctrinePath}`);
115
+ }
116
+ return `${PRINCIPLES_START_MARKER}${managed.inner}${PRINCIPLES_END_MARKER}`;
117
+ }
118
+ export function applyBlock(hostFile, block) {
119
+ const expectedInner = normalizeInner(extractInnerFromBlock(block));
120
+ const existing = readHostFile(hostFile);
121
+ const managed = extractManagedBlock(existing);
122
+ if (!managed) {
123
+ const prefix = existing.length > 0 && !existing.endsWith("\n") ? "\n\n" : existing.length > 0 ? "\n" : "";
124
+ const next = `${existing}${prefix}${block}\n`;
125
+ writeHostFile(hostFile, next);
126
+ return { changed: true, action: "created" };
127
+ }
128
+ const currentInner = normalizeInner(managed.inner);
129
+ if (currentInner === expectedInner) {
130
+ return { changed: false, action: "noop" };
131
+ }
132
+ const replacement = `${PRINCIPLES_START_MARKER}${extractInnerFromBlock(block)}${PRINCIPLES_END_MARKER}`;
133
+ const next = existing.slice(0, managed.start) +
134
+ replacement +
135
+ existing.slice(managed.end);
136
+ writeHostFile(hostFile, next);
137
+ return { changed: true, action: "updated" };
138
+ }
139
+ export function removeBlock(hostFile) {
140
+ const existing = readHostFile(hostFile);
141
+ const managed = extractManagedBlock(existing);
142
+ if (!managed) {
143
+ return { removed: false };
144
+ }
145
+ let next = existing.slice(0, managed.start) + existing.slice(managed.end);
146
+ writeHostFile(hostFile, next);
147
+ return { removed: true };
148
+ }
149
+ export function checkBlock(hostFile, expectedBlock) {
150
+ const existing = readHostFile(hostFile);
151
+ const managed = extractManagedBlock(existing);
152
+ if (!managed) {
153
+ return "missing";
154
+ }
155
+ const expectedInner = normalizeInner(extractInnerFromBlock(expectedBlock));
156
+ const currentInner = normalizeInner(managed.inner);
157
+ return currentInner === expectedInner ? "present" : "stale";
158
+ }
159
+ //# sourceMappingURL=principles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principles.js","sourceRoot":"","sources":["../src/principles.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@
15
15
  "targets": [
16
16
  "claude",
17
17
  "codex",
18
- "cursor"
18
+ "cursor",
19
+ "enact"
19
20
  ],
20
21
  "skills": "./skills/",
21
22
  "interface": {
@@ -12,7 +12,8 @@
12
12
  "targets": [
13
13
  "claude",
14
14
  "codex",
15
- "cursor"
15
+ "cursor",
16
+ "enact"
16
17
  ],
17
18
  "skills": "./skills/",
18
19
  "mcpServers": "./.mcp.json",
@@ -34,16 +34,6 @@
34
34
  }
35
35
  ]
36
36
  },
37
- {
38
- "matcher": "Bash",
39
- "hooks": [
40
- {
41
- "type": "command",
42
- "command": "enact-context hook rewrite",
43
- "statusMessage": "enact-context: compress shell output"
44
- }
45
- ]
46
- },
47
37
  {
48
38
  "matcher": "Read|read|ReadFile|read_file|View|view|Grep|grep|Search|search|ListFiles|list_files|ListDirectory|list_directory",
49
39
  "hooks": [
@@ -21,13 +21,16 @@ If the install script is not available locally, install manually:
21
21
  curl -fsSL https://amsterdamdatalabs.com/install.sh | sh
22
22
  ```
23
23
 
24
- After installation, configure the MCP server:
24
+ Host integration is managed by the plugin system. For Codex registration, use:
25
25
 
26
26
  ```bash
27
- enact-context init --global
28
- enact-context doctor --fix
27
+ enact-extensions install enact-context --platform codex
29
28
  ```
30
29
 
30
+ Do not use `enact-context setup`, `enact-context doctor --fix`, or
31
+ `enact-context init --agent codex` for Codex registration; those commands write
32
+ direct global artifacts outside the plugin system.
33
+
31
34
  ## When to use enact-context
32
35
 
33
36
  Always prefer `enact-context -c <command>` over running commands directly when:
@@ -73,17 +76,16 @@ Use `full` mode only when you will edit the file.
73
76
  ## AI Tool Integration
74
77
 
75
78
  ```bash
76
- enact-context init --global # Install shell aliases
77
- enact-context init --agent claude # Claude Code PreToolUse hook
78
- enact-context init --agent cursor # Cursor hooks.json
79
- enact-context init --agent gemini # Gemini CLI BeforeTool hook
80
- enact-context init --agent codex # Codex AGENTS.md
81
- enact-context init --agent windsurf # .windsurfrules
82
- enact-context init --agent cline # .clinerules
83
- enact-context init --agent crush # Crush MCP config
84
- enact-context init --agent copilot # VS Code / Copilot .vscode/mcp.json
79
+ enact-extensions install enact-context --platform codex
80
+ enact-extensions install enact-context --platform claude
81
+ enact-extensions install enact-context --platform cursor
82
+ enact-extensions install enact-context --platform enact
83
+ enact-extensions install enact-context --platform all
85
84
  ```
86
85
 
86
+ Use the runtime's `init` commands only for non-plugin-managed personal shell
87
+ setup. Plugin-managed hosts should be registered through `enact-extensions`.
88
+
87
89
  ## Multi-Agent & Knowledge
88
90
 
89
91
  MCP tools:
@@ -43,10 +43,11 @@ ensure_path() {
43
43
  esac
44
44
  }
45
45
 
46
- setup_mcp() {
47
- echo "Configuring enact-context MCP server..."
48
- enact-context init --global 2>/dev/null || true
49
- enact-context doctor --fix 2>/dev/null || true
46
+ print_registration_note() {
47
+ echo "Runtime install complete."
48
+ echo "Register hosts through the plugin system, for example:"
49
+ echo " enact-extensions install enact-context --platform codex"
50
+ echo "Do not use 'enact-context setup' or 'doctor --fix' for Codex registration."
50
51
  }
51
52
 
52
53
  main() {
@@ -54,7 +55,7 @@ main() {
54
55
  local current
55
56
  current="$(enact-context --version 2>/dev/null | head -1 || echo 'unknown')"
56
57
  echo "enact-context already installed: ${current}"
57
- echo "Run 'enact-context doctor' to verify configuration."
58
+ print_registration_note
58
59
  exit 0
59
60
  fi
60
61
 
@@ -62,8 +63,7 @@ main() {
62
63
  platform="$(detect_platform)"
63
64
  install_binary "$platform"
64
65
  ensure_path
65
- setup_mcp
66
- echo "enact-context installed and configured."
66
+ print_registration_note
67
67
  }
68
68
 
69
69
  main "$@"
@@ -18,7 +18,8 @@
18
18
  "targets": [
19
19
  "claude",
20
20
  "codex",
21
- "cursor"
21
+ "cursor",
22
+ "enact"
22
23
  ],
23
24
  "hooks": "./hooks/hooks.json",
24
25
  "interface": {
@@ -0,0 +1,7 @@
1
+ <!-- enact-core:operating-principles START -->
2
+ 1. No fallback / no silent degrade — if the real path fails, fail loud and stop.
3
+ 2. No silent drops — no `|| true`, no swallowed errors, no skipped gates.
4
+ 3. No fakes — no stubs, placeholders, or TODOs passed off as done.
5
+ 4. Truthful or stop — report status honestly; a stopped task beats a fake-green one.
6
+ 5. Out-of-scope work → a new WorkItem, never silent scope-creep.
7
+ <!-- enact-core:operating-principles END -->