@event4u/agent-config 9.11.0 → 9.12.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 (77) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +52 -0
  3. package/README.md +8 -1
  4. package/dist/agent-src/commands/fix/ci.md +29 -0
  5. package/dist/agent-src/commands/pr/create.md +60 -0
  6. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +18 -2
  7. package/dist/agent-src/rules/design-fidelity.md +1 -1
  8. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +1 -0
  9. package/dist/agent-src/skills/design-intelligence/SKILL.md +27 -1
  10. package/dist/agent-src/skills/design-intelligence/data/font-pairings-reference.csv +74 -74
  11. package/dist/agent-src/skills/design-intelligence/data/manifest.json +2 -0
  12. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +0 -7
  13. package/dist/agent-src/skills/typography-system/SKILL.md +55 -11
  14. package/dist/agent-src/skills/ui-apply-generic/SKILL.md +180 -0
  15. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  16. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +9 -5
  17. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +9 -6
  18. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
  19. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
  20. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
  21. package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
  22. package/dist/cli-delegate/{chunk-IR7P7JWA.js → chunk-A3HJ6NTI.js} +271 -59
  23. package/dist/cli-delegate/chunk-EJYIGZ3T.js +125 -0
  24. package/dist/cli-delegate/{chunk-RDGRHAAB.js → chunk-HYWSRNUX.js} +6 -86
  25. package/dist/cli-delegate/{chunk-YMFO6FDN.js → chunk-QFKQLQ7X.js} +313 -81
  26. package/dist/cli-delegate/{chunk-4SV3XGFA.js → chunk-TEGJU2JX.js} +7 -9
  27. package/dist/cli-delegate/chunk-TJIAM5FW.js +133 -0
  28. package/dist/cli-delegate/cmd_conformance.js +4 -7
  29. package/dist/cli-delegate/cmd_doctor.js +3 -5
  30. package/dist/cli-delegate/cmd_explain.js +153 -85
  31. package/dist/cli-delegate/cmd_export.js +5 -3
  32. package/dist/cli-delegate/cmd_fleet.js +2 -1
  33. package/dist/cli-delegate/cmd_preflight.js +6 -123
  34. package/dist/cli-delegate/cmd_prune.js +5 -3
  35. package/dist/cli-delegate/cmd_settings_migrate.js +5 -3
  36. package/dist/cli-delegate/cmd_sync.js +5 -3
  37. package/dist/cli-delegate/cmd_uninstall.js +6 -5
  38. package/dist/cli-delegate/cmd_validate.js +5 -3
  39. package/dist/discovery/deprecation-report.md +1 -1
  40. package/dist/discovery/discovery-manifest.json +36 -14
  41. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  42. package/dist/discovery/discovery-manifest.summary.md +3 -3
  43. package/dist/discovery/orphan-report.md +1 -1
  44. package/dist/discovery/packs.json +6 -5
  45. package/dist/discovery/trust-report.md +2 -2
  46. package/dist/discovery/workspaces.json +5 -4
  47. package/dist/install/install.mjs +605 -412
  48. package/dist/install/ruleInScope.js +123 -0
  49. package/dist/install/ruleInScope.js.map +1 -0
  50. package/dist/install/rule_scope.js +2 -2
  51. package/dist/install/rule_scope.js.map +1 -1
  52. package/dist/install/wizard-plan.js +10 -1
  53. package/dist/install/wizard-plan.js.map +1 -1
  54. package/dist/mcp/registry-manifest.json +3 -3
  55. package/dist/mcp/server.json +2 -2
  56. package/dist/mcp/server.mjs +405 -2429
  57. package/dist/scripts/condense.js +6 -22
  58. package/dist/scripts/condense.js.map +1 -1
  59. package/docs/guidelines/design-fidelity-mechanics.md +14 -0
  60. package/package.json +1 -1
  61. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +9 -5
  62. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +9 -6
  63. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
  64. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
  65. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
  66. package/src/install/ruleInScope.ts +133 -0
  67. package/src/install/rule_scope.ts +2 -2
  68. package/src/install/wizard-plan.ts +11 -1
  69. package/src/scripts/_lib/global_deploy_inventory.ts +38 -2
  70. package/src/scripts/check_installer_import_purity.ts +295 -0
  71. package/src/scripts/condense.ts +7 -28
  72. package/src/scripts/install-hooks.sh +36 -4
  73. package/src/scripts/install.ts +210 -5
  74. package/src/scripts/lint_ui_stack_bundles.ts +31 -0
  75. package/dist/cli-delegate/chunk-7DSAMZFU.js +0 -356
  76. package/dist/cli-delegate/chunk-BJGXZNPM.js +0 -266
  77. package/dist/cli-delegate/chunk-TFG57JJM.js +0 -1969
@@ -0,0 +1,125 @@
1
+ import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
+ import {
3
+ LEGACY_ALL,
4
+ ruleFileArrives
5
+ } from "./chunk-TJIAM5FW.js";
6
+
7
+ // src/install/wizard-plan.ts
8
+ import { homedir } from "node:os";
9
+ import { isAbsolute, join, resolve } from "node:path";
10
+ var USER_SCOPE_PATHS = {
11
+ "claude-code": "~/.claude/",
12
+ "claude-desktop": "~/Library/Application Support/Claude/",
13
+ cursor: "~/.cursor/",
14
+ windsurf: "~/.codeium/windsurf/",
15
+ cline: "~/Documents/Cline/Rules/",
16
+ "gemini-cli": "~/.gemini/",
17
+ copilot: "~/.copilot/",
18
+ augment: "~/.augment/",
19
+ aider: "~/.aider.conf.yml",
20
+ codex: "~/.codex/",
21
+ roocode: "~/.roo/",
22
+ continue: "~/.continue/",
23
+ kilocode: "~/.kilocode/",
24
+ zed: "~/.config/zed/",
25
+ jetbrains: "~/.config/JetBrains/",
26
+ kiro: "~/.kiro/",
27
+ qoder: "~/.qoder/",
28
+ opencode: "~/.opencode/",
29
+ trae: "~/.trae/",
30
+ antigravity: "~/.agents/",
31
+ codebuddy: "~/.codebuddy/",
32
+ droid: "~/.factory/",
33
+ warp: "~/.warp/"
34
+ };
35
+ var CLAUDE_SKILL_BUNDLE = [
36
+ ["dist/agent-src/rules", "rules"],
37
+ ["dist/agent-src/skills", "skills"],
38
+ // Commands ship to ~/.claude/commands/ — native Claude Code slash-
39
+ // command surface. Verified empirically 2026-05-28: rich frontmatter
40
+ // (disable-model-invocation, custom fields) tolerated; nested
41
+ // subdirs route as `/<cluster>:<sub>`. Council session 2026-05-28
42
+ // converged on Option B (native slash-only) — see
43
+ // agents/runtime/council/responses/claude-code-distribution.json
44
+ // and scripts/install.py:_CLAUDE_SKILL_BUNDLE for the Python mirror.
45
+ ["dist/agent-src/commands", "commands"],
46
+ ["dist/agent-src/personas", "personas"]
47
+ ];
48
+ var RULE_SOURCE_REL = "dist/agent-src/rules";
49
+ var GLOBAL_DEPLOY_SOURCES = {
50
+ "claude-code": CLAUDE_SKILL_BUNDLE,
51
+ augment: [
52
+ ["dist/agent-src/rules", "rules"],
53
+ ["dist/agent-src/skills", "skills"],
54
+ ["dist/agent-src/commands", "commands"],
55
+ ["dist/agent-src/contexts", "contexts"],
56
+ ["dist/agent-src/personas", "personas"],
57
+ ["dist/agent-src/templates", "templates"]
58
+ ],
59
+ cursor: [
60
+ ["dist/agent-src/rules", "rules"],
61
+ ["dist/agent-src/commands", "commands"],
62
+ ["dist/agent-src/personas", "personas"]
63
+ ],
64
+ windsurf: [
65
+ ["dist/agent-src/rules", "rules"]
66
+ ],
67
+ cline: [
68
+ ["dist/agent-src/rules", ""]
69
+ ],
70
+ "gemini-cli": CLAUDE_SKILL_BUNDLE,
71
+ codex: CLAUDE_SKILL_BUNDLE,
72
+ continue: CLAUDE_SKILL_BUNDLE,
73
+ roocode: CLAUDE_SKILL_BUNDLE,
74
+ kilocode: CLAUDE_SKILL_BUNDLE,
75
+ qoder: CLAUDE_SKILL_BUNDLE,
76
+ opencode: CLAUDE_SKILL_BUNDLE,
77
+ trae: CLAUDE_SKILL_BUNDLE,
78
+ antigravity: CLAUDE_SKILL_BUNDLE,
79
+ codebuddy: CLAUDE_SKILL_BUNDLE,
80
+ droid: CLAUDE_SKILL_BUNDLE,
81
+ warp: CLAUDE_SKILL_BUNDLE,
82
+ kiro: [
83
+ ["dist/agent-src/rules", "rules"],
84
+ ["dist/agent-src/skills", "steering"],
85
+ ["dist/agent-src/personas", "personas"]
86
+ ]
87
+ };
88
+ function expandAnchor(anchor, home) {
89
+ const h = home ?? homedir();
90
+ if (anchor === "~") return h;
91
+ if (anchor.startsWith("~/")) return join(h, anchor.slice(2));
92
+ if (isAbsolute(anchor)) return anchor;
93
+ return resolve(anchor);
94
+ }
95
+ function expandWizardSources(inputs) {
96
+ const { toolIds, packageRoot, home } = inputs;
97
+ const scope = inputs.ruleScope ?? LEGACY_ALL;
98
+ const ruleFilter = (srcFile) => ruleFileArrives(srcFile, scope);
99
+ const out = [];
100
+ for (const toolId of toolIds) {
101
+ const deploy = GLOBAL_DEPLOY_SOURCES[toolId];
102
+ const anchor = USER_SCOPE_PATHS[toolId];
103
+ if (!deploy || !anchor) continue;
104
+ const destRoot = expandAnchor(anchor, home);
105
+ for (const [srcRel, destSub] of deploy) {
106
+ const srcDir = join(packageRoot, srcRel);
107
+ const destDir = destSub.length === 0 ? destRoot : join(destRoot, destSub);
108
+ const isRuleSource = srcRel === RULE_SOURCE_REL;
109
+ out.push({
110
+ toolId,
111
+ srcDir,
112
+ destDir,
113
+ kind: "deployed",
114
+ ...isRuleSource ? { fileFilter: ruleFilter } : {}
115
+ });
116
+ }
117
+ }
118
+ return out;
119
+ }
120
+
121
+ export {
122
+ RULE_SOURCE_REL,
123
+ GLOBAL_DEPLOY_SOURCES,
124
+ expandWizardSources
125
+ };
@@ -2,96 +2,16 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  detectToolPresence
4
4
  } from "./chunk-OMIVVCG2.js";
5
+ import {
6
+ buildInstallPlan,
7
+ sha256File
8
+ } from "./chunk-523HCFYO.js";
5
9
 
6
10
  // src/install/preflight.ts
7
- import { accessSync, constants, existsSync as existsSync2, statSync as statSync2 } from "node:fs";
11
+ import { accessSync, constants, existsSync as existsSync2, statSync } from "node:fs";
8
12
  import * as fs from "node:fs";
9
13
  import { dirname } from "node:path";
10
14
 
11
- // src/install/plan.ts
12
- import { createHash } from "node:crypto";
13
- import { readFileSync, readdirSync, statSync } from "node:fs";
14
- import { join, relative, resolve } from "node:path";
15
- function sha256File(path) {
16
- try {
17
- const data = readFileSync(path);
18
- return createHash("sha256").update(data).digest("hex");
19
- } catch {
20
- return null;
21
- }
22
- }
23
- function fileEntry(path, kind, options) {
24
- return {
25
- path,
26
- kind,
27
- sha256: options.hashContent ? sha256File(path) : null
28
- };
29
- }
30
- function walkSourceTree(dir) {
31
- const out = [];
32
- walkInto(dir, out);
33
- return out;
34
- }
35
- function walkInto(dir, out) {
36
- let entries;
37
- try {
38
- entries = readdirSync(dir).sort();
39
- } catch {
40
- return;
41
- }
42
- for (const name of entries) {
43
- const full = join(dir, name);
44
- let isDir;
45
- try {
46
- isDir = statSync(full).isDirectory();
47
- } catch {
48
- continue;
49
- }
50
- if (isDir) {
51
- walkInto(full, out);
52
- } else {
53
- out.push(full);
54
- }
55
- }
56
- }
57
- function buildInstallPlan(inputs) {
58
- const filesByTool = {};
59
- for (const source of inputs.sources) {
60
- const bucket = filesByTool[source.toolId] ?? [];
61
- let files = walkSourceTree(source.srcDir);
62
- if (source.fileFilter !== void 0) {
63
- files = files.filter(source.fileFilter);
64
- }
65
- for (const srcFile of files) {
66
- const rel = relative(source.srcDir, srcFile);
67
- const destPath = resolve(source.destDir, rel);
68
- bucket.push(
69
- fileEntry(srcFile, source.kind, {
70
- hashContent: source.kind !== "bridge"
71
- })
72
- );
73
- bucket[bucket.length - 1] = {
74
- ...bucket[bucket.length - 1],
75
- path: destPath
76
- };
77
- }
78
- filesByTool[source.toolId] = bucket;
79
- }
80
- for (const source of inputs.sources) {
81
- if (!(source.toolId in filesByTool)) {
82
- filesByTool[source.toolId] = [];
83
- }
84
- }
85
- return {
86
- version: 2,
87
- target: inputs.target,
88
- root: inputs.root,
89
- filesByTool,
90
- mergedKeysByTool: {},
91
- policy: inputs.policy
92
- };
93
- }
94
-
95
15
  // src/install/conflict.ts
96
16
  import { existsSync } from "node:fs";
97
17
  function isJsonTarget(entry) {
@@ -149,7 +69,7 @@ function checkPermissions(inputs) {
149
69
  }
150
70
  if (existsSync2(root)) {
151
71
  try {
152
- if (!statSync2(root).isDirectory()) {
72
+ if (!statSync(root).isDirectory()) {
153
73
  out.push({
154
74
  id: "permissions",
155
75
  severity: "blocking",