@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +52 -0
- package/README.md +8 -1
- package/dist/agent-src/commands/fix/ci.md +29 -0
- package/dist/agent-src/commands/pr/create.md +60 -0
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +18 -2
- package/dist/agent-src/rules/design-fidelity.md +1 -1
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +1 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +27 -1
- package/dist/agent-src/skills/design-intelligence/data/font-pairings-reference.csv +74 -74
- package/dist/agent-src/skills/design-intelligence/data/manifest.json +2 -0
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +0 -7
- package/dist/agent-src/skills/typography-system/SKILL.md +55 -11
- package/dist/agent-src/skills/ui-apply-generic/SKILL.md +180 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +9 -5
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +9 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-IR7P7JWA.js → chunk-A3HJ6NTI.js} +271 -59
- package/dist/cli-delegate/chunk-EJYIGZ3T.js +125 -0
- package/dist/cli-delegate/{chunk-RDGRHAAB.js → chunk-HYWSRNUX.js} +6 -86
- package/dist/cli-delegate/{chunk-YMFO6FDN.js → chunk-QFKQLQ7X.js} +313 -81
- package/dist/cli-delegate/{chunk-4SV3XGFA.js → chunk-TEGJU2JX.js} +7 -9
- package/dist/cli-delegate/chunk-TJIAM5FW.js +133 -0
- package/dist/cli-delegate/cmd_conformance.js +4 -7
- package/dist/cli-delegate/cmd_doctor.js +3 -5
- package/dist/cli-delegate/cmd_explain.js +153 -85
- package/dist/cli-delegate/cmd_export.js +5 -3
- package/dist/cli-delegate/cmd_fleet.js +2 -1
- package/dist/cli-delegate/cmd_preflight.js +6 -123
- package/dist/cli-delegate/cmd_prune.js +5 -3
- package/dist/cli-delegate/cmd_settings_migrate.js +5 -3
- package/dist/cli-delegate/cmd_sync.js +5 -3
- package/dist/cli-delegate/cmd_uninstall.js +6 -5
- package/dist/cli-delegate/cmd_validate.js +5 -3
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +36 -14
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +6 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +5 -4
- package/dist/install/install.mjs +605 -412
- package/dist/install/ruleInScope.js +123 -0
- package/dist/install/ruleInScope.js.map +1 -0
- package/dist/install/rule_scope.js +2 -2
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/wizard-plan.js +10 -1
- package/dist/install/wizard-plan.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +405 -2429
- package/dist/scripts/condense.js +6 -22
- package/dist/scripts/condense.js.map +1 -1
- package/docs/guidelines/design-fidelity-mechanics.md +14 -0
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +9 -5
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +9 -6
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
- package/src/install/ruleInScope.ts +133 -0
- package/src/install/rule_scope.ts +2 -2
- package/src/install/wizard-plan.ts +11 -1
- package/src/scripts/_lib/global_deploy_inventory.ts +38 -2
- package/src/scripts/check_installer_import_purity.ts +295 -0
- package/src/scripts/condense.ts +7 -28
- package/src/scripts/install-hooks.sh +36 -4
- package/src/scripts/install.ts +210 -5
- package/src/scripts/lint_ui_stack_bundles.ts +31 -0
- package/dist/cli-delegate/chunk-7DSAMZFU.js +0 -356
- package/dist/cli-delegate/chunk-BJGXZNPM.js +0 -266
- 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
|
|
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 (!
|
|
72
|
+
if (!statSync(root).isDirectory()) {
|
|
153
73
|
out.push({
|
|
154
74
|
id: "permissions",
|
|
155
75
|
severity: "blocking",
|