@event4u/agent-config 4.5.0 → 4.6.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 +21 -264
- package/dist/cli/agent-config.js +13 -9
- package/dist/cli/agent-config.js.map +1 -1
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +1 -1
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +1 -1
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +1 -1
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/wizard.js +45 -11
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/ui/assets/index-BAJQeVdX.js +40 -0
- package/dist/ui/assets/index-BAJQeVdX.js.map +1 -0
- package/dist/ui/assets/index-BbWWuFrF.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/archive/CHANGELOG-pre-4.5.0.md +289 -0
- package/docs/contracts/gui-wizard.md +8 -1
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/condense.py +56 -1
- package/scripts/install.py +16 -43
- package/dist/ui/assets/index-J0-0d7RC.js +0 -40
- package/dist/ui/assets/index-J0-0d7RC.js.map +0 -1
- package/dist/ui/assets/index-ZiC8PbdW.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--color-bg: #fafafa;--color-surface: #ffffff;--color-surface-alt: #f4f4f5;--color-border: #e4e4e7;--color-border-strong:#a1a1aa;--color-text: #18181b;--color-text-muted: #52525b;--color-text-subtle: #71717a;--color-text-inverse: #fafafa;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-fg: #ffffff;--color-success: #16a34a;--color-warning: #d97706;--color-danger: #dc2626;--color-info: #0284c7;--color-focus-ring: #3b82f6;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-regular:400;--font-weight-medium: 500;--font-weight-bold: 600;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-loose: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-focus:0 0 0 2px var(--color-focus-ring);--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--easing-standard: cubic-bezier(.2, 0, 0, 1);--layout-max-width: 48rem;--layout-side-padding: var(--space-6);--layout-content-gap: var(--space-4);--z-base: 0;--z-overlay: 10;--z-modal: 20;--z-toast: 30}[data-theme=dark]{--color-bg: #09090b;--color-surface: #18181b;--color-surface-alt: #27272a;--color-border: #3f3f46;--color-border-strong:#52525b;--color-text: #fafafa;--color-text-muted: #a1a1aa;--color-text-subtle: #71717a;--color-text-inverse: #18181b;--color-accent: #3b82f6;--color-accent-hover: #60a5fa;--color-accent-fg: #0b1220;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #38bdf8;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .6);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .7);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .8)}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-slow: 0ms}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--color-surface-alt);padding:0 var(--space-1);border-radius:var(--radius-sm)}#app{min-height:100vh}.ac-dryrun-banner{position:sticky;top:0;z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-warning);color:#fff;border-bottom:1px solid #b45309;font-size:var(--font-size-sm);text-align:center}.ac-dryrun-banner strong{letter-spacing:.08em;text-transform:uppercase}.ac-topnav{position:sticky;top:0;z-index:9;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.ac-topnav__inner{max-width:var(--layout-max-width);margin:0 auto;padding:var(--space-3) var(--layout-side-padding);display:flex;align-items:center;gap:var(--space-4)}.ac-topnav__brand{display:flex;flex-direction:column;gap:0;margin-right:var(--space-2)}.ac-topnav__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);margin:0;line-height:1.2}.ac-topnav__subtitle{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-topnav__tabs{display:flex;gap:var(--space-1);flex:1;flex-wrap:wrap}.ac-topnav__tab{appearance:none;background:transparent;border:1px solid transparent;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer}.ac-topnav__tab:hover{background:var(--color-surface-alt);color:var(--color-text)}.ac-topnav__tab--active{background:var(--color-surface-alt);color:var(--color-accent);border-color:var(--color-border)}.ac-page{max-width:var(--layout-max-width);margin:0 auto;padding:var(--space-8) var(--layout-side-padding);display:flex;flex-direction:column;gap:var(--layout-content-gap)}.ac-page__header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3)}.ac-page h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0}.ac-banner{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.ac-banner--error{border-left-color:var(--color-danger)}.ac-banner--success{border-left-color:var(--color-success)}.ac-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)}.ac-section__title{font-size:var(--font-size-lg);margin:0 0 var(--space-2)}.ac-section__description{color:var(--color-text-muted);margin:0 0 var(--space-4)}.ac-section__fields{display:flex;flex-direction:column;gap:var(--space-4)}.ac-field{display:flex;flex-direction:column;gap:var(--space-1)}.ac-field__label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.ac-field__description{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.ac-field__error{color:var(--color-danger);font-size:var(--font-size-xs);margin:0;border-left:3px solid var(--color-danger);padding-left:var(--space-2)}.ac-input,.ac-textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);width:100%}.ac-input:focus,.ac-textarea:focus{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-focus-ring)}.ac-input[aria-invalid=true],.ac-textarea[aria-invalid=true]{border-color:var(--color-danger)}.ac-input[aria-invalid=true]:focus,.ac-textarea[aria-invalid=true]:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft, rgba(239, 68, 68, .18))}.ac-textarea{font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.ac-toggle{display:inline-flex;gap:var(--space-2);align-items:center;cursor:pointer}.ac-radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.ac-radio{display:inline-flex;gap:var(--space-2);align-items:center;cursor:pointer}.ac-field[data-invalid=true] .ac-toggle input[type=checkbox],.ac-field[data-invalid=true] .ac-radio input[type=radio]{outline:2px solid var(--color-danger);outline-offset:2px;border-radius:2px}.ac-button{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard)}.ac-button:hover{background:var(--color-surface-alt)}.ac-button:disabled{opacity:.6;cursor:not-allowed}.ac-button--primary{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.ac-button--primary:hover{background:var(--color-accent-hover)}.ac-button:focus{outline:none;box-shadow:var(--shadow-focus)}.ac-form{display:flex;flex-direction:column;gap:var(--space-5)}.ac-form__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.ac-modal{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.ac-modal__panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);max-width:32rem;width:90vw;max-height:80vh;overflow:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:var(--space-4)}.ac-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.ac-diff{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.ac-diff li{display:grid;grid-template-columns:1fr auto auto auto;gap:var(--space-2);font-size:var(--font-size-sm);align-items:center}.ac-diff__before{color:var(--color-text-muted);text-decoration:line-through}.ac-diff__arrow{color:var(--color-text-subtle)}.ac-diff__after{color:var(--color-success);font-weight:var(--font-weight-medium)}.ac-page__progress{color:var(--color-text-muted);margin:0}.ac-wizard__header{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch}.ac-wizard__header-text{display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__subtitle{color:var(--color-text-muted);margin:0}.ac-wizard__step-count{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.ac-wizard__progress{display:flex;gap:var(--space-1)}.ac-wizard__progress-segment{flex:1;height:4px;background:var(--color-border);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-standard)}.ac-wizard__progress-segment--filled{background:var(--color-accent)}.ac-wizard__step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.ac-wizard__nav{justify-content:space-between}.ac-wizard__nav .ac-button:first-child{margin-right:auto}.ac-wizard__skip{color:var(--color-text-muted)}.ac-wizard__hint{margin:var(--space-3) 0 0;color:var(--color-warning, #b45309);font-size:.875rem}.ac-wizard__review{display:flex;flex-direction:column;gap:var(--space-4)}.ac-wizard__tool-list{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__tool-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ac-wizard__tool-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.ac-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:.1rem var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.ac-badge--installed{background:var(--color-success-soft);color:var(--color-success)}.ac-badge--missing{background:var(--color-surface-alt);color:var(--color-text-muted)}.ac-badge--ws{font-size:.6875rem;padding:.05rem .4rem;background:var(--color-surface-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}.ac-badge--ws-active{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.ac-wizard__pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.ac-pack-tile{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ac-pack-tile__head{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-weight:var(--font-weight-medium)}.ac-pack-tile__title{flex:1}.ac-pack-tile__role{margin:0;font-size:var(--font-size-xs);color:var(--color-text)}.ac-pack-tile__role code{font-size:var(--font-size-xs)}.ac-pack-tile__desc{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-pack-tile__ws{display:flex;flex-wrap:wrap;gap:var(--space-1)}.ac-pack-tile__children{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:var(--space-2) 0 0 var(--space-4);border:0;border-top:1px solid var(--color-border)}.ac-pack-tile__children:disabled{opacity:.5}.ac-pack-tile__child{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);cursor:pointer}.ac-wizard__module-fields{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.ac-rtk-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ac-rtk-row__head{display:flex;align-items:center;gap:var(--space-2)}.ac-rtk-row__label{font-weight:var(--font-weight-medium)}.ac-rtk-row__install{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.ac-rtk-row__cmd{display:block;width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);user-select:all}.ac-council{display:flex;flex-direction:column;gap:var(--space-4)}.ac-council__master{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-medium)}.ac-council__section{display:flex;flex-direction:column;gap:var(--space-4);border:0;padding:0;margin:0}.ac-council__section:disabled{opacity:.55}.ac-council__h{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.ac-wizard__review-nav{display:flex;flex-direction:column;gap:var(--space-2)}.ac-wizard__review-nav-label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.ac-wizard__review-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__review-nav-button{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--color-border);border-left:3px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard)}.ac-wizard__review-nav-button:hover{background:var(--color-surface);border-color:var(--color-accent);border-left-color:var(--color-success)}.ac-wizard__review-nav-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ac-wizard__review-nav-index{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;background:var(--color-border);border-radius:999px;font-size:var(--font-size-xs);font-weight:600}.ac-wizard__review-nav-text{flex:1}.ac-wizard__review-nav-status{margin-left:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:.125rem .5rem;border-radius:999px;white-space:nowrap}.ac-wizard__review-nav-status--changed{background:var(--color-success-soft, rgba(34, 197, 94, .12));color:var(--color-success)}.ac-wizard__review-nav-status--error{background:var(--color-danger-soft, rgba(239, 68, 68, .12));color:var(--color-danger)}.ac-wizard__review-nav-button--error{border-left-color:var(--color-danger)}.ac-wizard__review-nav-button--error:hover{border-color:var(--color-accent);border-left-color:var(--color-danger)}.ac-user-md-form{display:flex;flex-direction:column;gap:var(--space-5)}.ac-chip-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.ac-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:999px;font-size:var(--font-size-sm)}.ac-chip__remove{appearance:none;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 var(--space-1)}.ac-chip__remove:hover:not(:disabled){color:var(--color-text)}.ac-chip__remove:disabled{opacity:.4;cursor:not-allowed}.ac-role-add{display:flex;gap:var(--space-2);align-items:center}.ac-role-add .ac-input{flex:1}.ac-workspace__grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr) minmax(260px,1fr);gap:var(--space-4);margin-top:var(--space-4)}@media (max-width: 900px){.ac-workspace__grid{grid-template-columns:1fr}}.ac-workspace__heading{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin:0 0 var(--space-2) 0;color:var(--color-text)}.ac-workspace__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-workspace__role-grid{display:flex;flex-direction:column;gap:var(--space-2)}.ac-workspace__role{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:var(--space-1);color:inherit;font:inherit}.ac-workspace__role:hover{border-color:var(--color-border-strong)}.ac-workspace__role--active{border-color:var(--color-primary, var(--color-text));background:var(--color-surface-alt)}.ac-workspace__role:focus-visible{outline:2px solid var(--color-primary, var(--color-text));outline-offset:2px}.ac-workspace__role-name{font-weight:var(--font-weight-medium)}.ac-workspace__role-status{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.ac-workspace__role-status[data-status=stable]{color:var(--color-success, #15803d)}.ac-workspace__role-status[data-status=beta]{color:var(--color-warn, #b45309)}.ac-workspace__role-status[data-status=draft]{color:var(--color-text-muted)}.ac-workspace__role-tagline{grid-column:1 / -1;color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-workspace__main{display:flex;flex-direction:column;gap:var(--space-4)}.ac-workspace__task-list,.ac-workspace__session-list,.ac-workspace__doc-list,.ac-workspace__skill-list,.ac-workspace__citation-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.ac-workspace__task{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface)}.ac-workspace__task-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.ac-workspace__task-name{font-weight:var(--font-weight-medium)}.ac-workspace__task-intent{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:var(--space-1) 0 0 0}.ac-workspace__task-prompt{display:inline-block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.ac-workspace__session{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,1fr) 2fr;gap:var(--space-2);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ac-workspace__session-id{font-family:var(--font-mono, monospace);color:var(--color-text-muted)}.ac-workspace__rail{display:flex;flex-direction:column;gap:var(--space-4)}.ac-workspace__citation{border-left:3px solid var(--color-border);padding:var(--space-1) var(--space-2)}.ac-workspace__citation-marker{font-weight:var(--font-weight-medium);margin-right:var(--space-1)}.ac-workspace__citation-source{text-decoration:none;color:var(--color-text);border-bottom:1px dotted var(--color-border-strong)}.ac-workspace__citation-source:hover{color:var(--color-primary, var(--color-text))}.ac-workspace__citation-pin{margin-left:var(--space-1);color:var(--color-warn, #b45309)}.ac-workspace__citation-excerpt{margin:var(--space-1) 0 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-workspace__doc{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-2);align-items:center;font-size:var(--font-size-sm);padding:var(--space-2);border-radius:var(--radius-sm)}.ac-workspace__doc-type{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--space-1)}.ac-workspace__doc-time{font-family:var(--font-mono, monospace);color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-workspace__explain{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.ac-workspace__explain legend{padding:0 var(--space-1)}.ac-workspace__explain-option{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1) 0}.ac-workspace__explain-hint{margin:var(--space-2) 0 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}
|
package/dist/ui/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="robots" content="noindex" />
|
|
7
7
|
<title>agent-config</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BAJQeVdX.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BbWWuFrF.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<main id="app"></main>
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# Changelog Archive — pre-4.5.0
|
|
2
|
+
|
|
3
|
+
> Frozen snapshot of `event4u/agent-config` changelog entries
|
|
4
|
+
> released before `4.5.0`, split out of the main
|
|
5
|
+
> [`CHANGELOG.md`](../../CHANGELOG.md) by `scripts/release.py`
|
|
6
|
+
> once the active era's body crossed the drift cap enforced by
|
|
7
|
+
> `tests/test_changelog_eras.py`.
|
|
8
|
+
>
|
|
9
|
+
> **Read-only.** New entries land in `CHANGELOG.md`. Entries
|
|
10
|
+
> here are not amended — git tags remain the canonical source
|
|
11
|
+
> for what shipped.
|
|
12
|
+
>
|
|
13
|
+
> Entry shape follows
|
|
14
|
+
> [`../contracts/CHANGELOG-conventions.md`](../contracts/CHANGELOG-conventions.md).
|
|
15
|
+
|
|
16
|
+
## [4.5.0](https://github.com/event4u-app/agent-config/compare/4.3.0...4.5.0) (2026-05-27)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **wizard:** move name + language to a welcome step (Step 1) with smart pre-fill ([98fc74d](https://github.com/event4u-app/agent-config/commit/98fc74d3da2337c811d59e22bbcde75daa1ae623))
|
|
21
|
+
* **wizard:** badge packs with their workspace areas on the packs step ([0c16a81](https://github.com/event4u-app/agent-config/commit/0c16a81c9479f66e5b66a666eef39d7555fca6e2))
|
|
22
|
+
* **wizard:** show example roles per area instead of the raw workspace id ([b60e08d](https://github.com/event4u-app/agent-config/commit/b60e08d56dffe5151b25cec7ddb0394d47123e5a))
|
|
23
|
+
* **wizard-ui:** show the role id under each workspace on the roles step ([5556afa](https://github.com/event4u-app/agent-config/commit/5556afa7b410d9963eef4abcd1e1f4cb72bcd6cf))
|
|
24
|
+
* **wizard-ui:** show the role id under each workspace on the roles step ([8dd4611](https://github.com/event4u-app/agent-config/commit/8dd46113f856b1c8bb0c7bf12d8594ee1b898b97))
|
|
25
|
+
* optimize autonomy-mechanics ([615c368](https://github.com/event4u-app/agent-config/commit/615c368a6f07394468247b9a2b281114c29f290f))
|
|
26
|
+
* **wizard:** add roles step (Step 2) + drop the formality setting ([7331651](https://github.com/event4u-app/agent-config/commit/7331651e2d7915b13a9a639414884cffea277a19))
|
|
27
|
+
* **wizard-ui:** smarter Step-1/2 pre-selection, sticky frameworks, empty-selection gate ([8de1e0e](https://github.com/event4u-app/agent-config/commit/8de1e0e6f50408d82b4d3f3ee3b35296aefb472f))
|
|
28
|
+
* **wizard:** surface prior tool selection from the install lockfile ([cdacbe0](https://github.com/event4u-app/agent-config/commit/cdacbe0292b60a447966ee976e18382da274756f))
|
|
29
|
+
* **init:** kill a stale wizard server before launching a fresh one ([dd57b7f](https://github.com/event4u-app/agent-config/commit/dd57b7f5ec121dc3abc2815fdcfcf26dc10c930a))
|
|
30
|
+
* **wizard:** auto-shut the server down after 30 min of inactivity ([5f9514f](https://github.com/event4u-app/agent-config/commit/5f9514fb869df901fb184b7ff7b8c4f0e14ddf91))
|
|
31
|
+
* **wizard:** shut the local server down when the browser window closes ([77d3c4f](https://github.com/event4u-app/agent-config/commit/77d3c4fcdd3e35f43daeb1a39e27e9e48653ef98))
|
|
32
|
+
* **wizard-ui:** first-run detection, pack tiles, styled inputs, handoff, rtk + AI-council steps ([f1755ed](https://github.com/event4u-app/agent-config/commit/f1755ed23687c6b6013480c1e743eabf0a53807a))
|
|
33
|
+
* **packs:** advisory `cluster:` field for wizard language→framework grouping ([b2a2ed9](https://github.com/event4u-app/agent-config/commit/b2a2ed979666b9f20686c30a3529b5ee9c8004fb))
|
|
34
|
+
* **wizard-server:** fresh-start state + tool/rtk/council detect & config endpoints ([c32d87c](https://github.com/event4u-app/agent-config/commit/c32d87c020006e3759f5a3aec362450650bb6de1))
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* **ci:** regenerate pack-ai-video for the description change + fix userMd test resets ([cd4509d](https://github.com/event4u-app/agent-config/commit/cd4509d6a5601b5d6ca8d4bd4adef53a3e9468bb))
|
|
39
|
+
* **condense-memory:** preserve URLs, link targets, and paths in prose ([aac6de1](https://github.com/event4u-app/agent-config/commit/aac6de1710a06f29be43c732aeb1c0e707bdfc69))
|
|
40
|
+
* **wizard:** pre-select the user's prior tool selection, not every deployed tool ([afe38a3](https://github.com/event4u-app/agent-config/commit/afe38a3458818ab532f01266b7e17708bfb1702b))
|
|
41
|
+
* **packs:** allow `cluster` in the discovery-manifest schema ([9014e95](https://github.com/event4u-app/agent-config/commit/9014e95983bff5e3b7acd96bd249ffced11a109c))
|
|
42
|
+
* **template:** bump agent-project-settings pin to 4.3.0 ([c2648ce](https://github.com/event4u-app/agent-config/commit/c2648cef51a8b587e1e3c7be536c3b46fbdd7410))
|
|
43
|
+
|
|
44
|
+
### Documentation
|
|
45
|
+
|
|
46
|
+
* **adr-013:** record the advisory example_roles key on workspaces ([ebcc661](https://github.com/event4u-app/agent-config/commit/ebcc66164bc6ce0201695bf293515f309d8efcf4))
|
|
47
|
+
* **wizard:** roles step + remove formality from schema docs and user commands ([06f890e](https://github.com/event4u-app/agent-config/commit/06f890e2e259016417b0a808f4e8c92e53c0ebea))
|
|
48
|
+
* **gui-wizard:** document Step-1/2 pre-selection, sticky frameworks, empty-selection gate ([ca273de](https://github.com/event4u-app/agent-config/commit/ca273de6e3e8b182fa98ddaff985cf4acb31eb91))
|
|
49
|
+
* **gui-wizard:** document 30-min idle shutdown + init kill-stale-server ([dfcdc40](https://github.com/event4u-app/agent-config/commit/dfcdc4054b85edab426abcb0bb4f2672d373c554))
|
|
50
|
+
* **gui-wizard:** document the browser-close shutdown beacon + idle backstop ([4eccc51](https://github.com/event4u-app/agent-config/commit/4eccc5117a802c1a0d57b7a98d7eea7a36d0078a))
|
|
51
|
+
* **roadmap:** complete + archive road-to-wizard-ux-improvements ([e02d514](https://github.com/event4u-app/agent-config/commit/e02d5145c9343126a2aa049811fc8094de8fa542))
|
|
52
|
+
* **gui-wizard:** step layout 8/11 + ai-council step + new wizard endpoints ([fdbcd9c](https://github.com/event4u-app/agent-config/commit/fdbcd9c494ec2785375ed1d3f1e130e3a4cb99ba))
|
|
53
|
+
|
|
54
|
+
### Tests
|
|
55
|
+
|
|
56
|
+
* **wizard:** roles step coverage + formality removal + step-count shifts ([5f8ec3e](https://github.com/event4u-app/agent-config/commit/5f8ec3ee4a1f135ee00e60ca612a2b4f09dbd7ba))
|
|
57
|
+
* **wizard:** cover detection, packs cluster, handoff, rtk, AI-council + step-count shifts ([5b6b758](https://github.com/event4u-app/agent-config/commit/5b6b7581e784bf5b219d30981f614e3778ccaaad))
|
|
58
|
+
|
|
59
|
+
### Chores
|
|
60
|
+
|
|
61
|
+
* **changelog:** split era 3.2.x → pre-4.0.0 ([10a6dd4](https://github.com/event4u-app/agent-config/commit/10a6dd415e5e8f3a60714898ad9157484b6a29e2))
|
|
62
|
+
* refresh condensation hashes for the autonomy/cheap-question contexts ([843f065](https://github.com/event4u-app/agent-config/commit/843f0658e1ac965c1dc44aebce26cec29744a0a7))
|
|
63
|
+
* add new roadmaps ([76ec1e3](https://github.com/event4u-app/agent-config/commit/76ec1e392b656c2177b7b9e1f75d5c6a1d1976e4))
|
|
64
|
+
* **docs:** repoint council-question links + ignore agents/tmp.old/ ([984512e](https://github.com/event4u-app/agent-config/commit/984512e623f25e9d336647d5190d3cfc2969d9b5))
|
|
65
|
+
|
|
66
|
+
### Other
|
|
67
|
+
|
|
68
|
+
* **wizard:** shrink the workspace badges on the packs step ([9af0d1e](https://github.com/event4u-app/agent-config/commit/9af0d1ea68302e3d3ef22b4a62955dfe2c54074b))
|
|
69
|
+
* Revert "feat(wizard-ui): show the role id under each workspace on the roles step" ([a22120c](https://github.com/event4u-app/agent-config/commit/a22120c3625c2535b85c05b9c7dcbfc2f3849d1f))
|
|
70
|
+
* 4.4.0 ([e2d7c13](https://github.com/event4u-app/agent-config/commit/e2d7c139a910f0539cece0ce0645259fc8d778fd))
|
|
71
|
+
|
|
72
|
+
Tests: 5059 (+7 since 4.3.0)
|
|
73
|
+
|
|
74
|
+
## [4.4.0](https://github.com/event4u-app/agent-config/compare/4.3.0...4.4.0) (2026-05-27)
|
|
75
|
+
|
|
76
|
+
### Features
|
|
77
|
+
|
|
78
|
+
* optimize autonomy-mechanics ([615c368](https://github.com/event4u-app/agent-config/commit/615c368a6f07394468247b9a2b281114c29f290f))
|
|
79
|
+
* **wizard:** add roles step (Step 2) + drop the formality setting ([7331651](https://github.com/event4u-app/agent-config/commit/7331651e2d7915b13a9a639414884cffea277a19))
|
|
80
|
+
* **wizard-ui:** smarter Step-1/2 pre-selection, sticky frameworks, empty-selection gate ([8de1e0e](https://github.com/event4u-app/agent-config/commit/8de1e0e6f50408d82b4d3f3ee3b35296aefb472f))
|
|
81
|
+
* **wizard:** surface prior tool selection from the install lockfile ([cdacbe0](https://github.com/event4u-app/agent-config/commit/cdacbe0292b60a447966ee976e18382da274756f))
|
|
82
|
+
* **init:** kill a stale wizard server before launching a fresh one ([dd57b7f](https://github.com/event4u-app/agent-config/commit/dd57b7f5ec121dc3abc2815fdcfcf26dc10c930a))
|
|
83
|
+
* **wizard:** auto-shut the server down after 30 min of inactivity ([5f9514f](https://github.com/event4u-app/agent-config/commit/5f9514fb869df901fb184b7ff7b8c4f0e14ddf91))
|
|
84
|
+
* **wizard:** shut the local server down when the browser window closes ([77d3c4f](https://github.com/event4u-app/agent-config/commit/77d3c4fcdd3e35f43daeb1a39e27e9e48653ef98))
|
|
85
|
+
* **wizard-ui:** first-run detection, pack tiles, styled inputs, handoff, rtk + AI-council steps ([f1755ed](https://github.com/event4u-app/agent-config/commit/f1755ed23687c6b6013480c1e743eabf0a53807a))
|
|
86
|
+
* **packs:** advisory `cluster:` field for wizard language→framework grouping ([b2a2ed9](https://github.com/event4u-app/agent-config/commit/b2a2ed979666b9f20686c30a3529b5ee9c8004fb))
|
|
87
|
+
* **wizard-server:** fresh-start state + tool/rtk/council detect & config endpoints ([c32d87c](https://github.com/event4u-app/agent-config/commit/c32d87c020006e3759f5a3aec362450650bb6de1))
|
|
88
|
+
|
|
89
|
+
### Bug Fixes
|
|
90
|
+
|
|
91
|
+
* **wizard:** pre-select the user's prior tool selection, not every deployed tool ([afe38a3](https://github.com/event4u-app/agent-config/commit/afe38a3458818ab532f01266b7e17708bfb1702b))
|
|
92
|
+
* **packs:** allow `cluster` in the discovery-manifest schema ([9014e95](https://github.com/event4u-app/agent-config/commit/9014e95983bff5e3b7acd96bd249ffced11a109c))
|
|
93
|
+
* **template:** bump agent-project-settings pin to 4.3.0 ([c2648ce](https://github.com/event4u-app/agent-config/commit/c2648cef51a8b587e1e3c7be536c3b46fbdd7410))
|
|
94
|
+
|
|
95
|
+
### Documentation
|
|
96
|
+
|
|
97
|
+
* **wizard:** roles step + remove formality from schema docs and user commands ([06f890e](https://github.com/event4u-app/agent-config/commit/06f890e2e259016417b0a808f4e8c92e53c0ebea))
|
|
98
|
+
* **gui-wizard:** document Step-1/2 pre-selection, sticky frameworks, empty-selection gate ([ca273de](https://github.com/event4u-app/agent-config/commit/ca273de6e3e8b182fa98ddaff985cf4acb31eb91))
|
|
99
|
+
* **gui-wizard:** document 30-min idle shutdown + init kill-stale-server ([dfcdc40](https://github.com/event4u-app/agent-config/commit/dfcdc4054b85edab426abcb0bb4f2672d373c554))
|
|
100
|
+
* **gui-wizard:** document the browser-close shutdown beacon + idle backstop ([4eccc51](https://github.com/event4u-app/agent-config/commit/4eccc5117a802c1a0d57b7a98d7eea7a36d0078a))
|
|
101
|
+
* **roadmap:** complete + archive road-to-wizard-ux-improvements ([e02d514](https://github.com/event4u-app/agent-config/commit/e02d5145c9343126a2aa049811fc8094de8fa542))
|
|
102
|
+
* **gui-wizard:** step layout 8/11 + ai-council step + new wizard endpoints ([fdbcd9c](https://github.com/event4u-app/agent-config/commit/fdbcd9c494ec2785375ed1d3f1e130e3a4cb99ba))
|
|
103
|
+
|
|
104
|
+
### Tests
|
|
105
|
+
|
|
106
|
+
* **wizard:** roles step coverage + formality removal + step-count shifts ([5f8ec3e](https://github.com/event4u-app/agent-config/commit/5f8ec3ee4a1f135ee00e60ca612a2b4f09dbd7ba))
|
|
107
|
+
* **wizard:** cover detection, packs cluster, handoff, rtk, AI-council + step-count shifts ([5b6b758](https://github.com/event4u-app/agent-config/commit/5b6b7581e784bf5b219d30981f614e3778ccaaad))
|
|
108
|
+
|
|
109
|
+
### Chores
|
|
110
|
+
|
|
111
|
+
* refresh condensation hashes for the autonomy/cheap-question contexts ([843f065](https://github.com/event4u-app/agent-config/commit/843f0658e1ac965c1dc44aebce26cec29744a0a7))
|
|
112
|
+
* add new roadmaps ([76ec1e3](https://github.com/event4u-app/agent-config/commit/76ec1e392b656c2177b7b9e1f75d5c6a1d1976e4))
|
|
113
|
+
* **docs:** repoint council-question links + ignore agents/tmp.old/ ([984512e](https://github.com/event4u-app/agent-config/commit/984512e623f25e9d336647d5190d3cfc2969d9b5))
|
|
114
|
+
|
|
115
|
+
Tests: 5055 (+3 since 4.3.0)
|
|
116
|
+
|
|
117
|
+
## [4.3.0](https://github.com/event4u-app/agent-config/compare/4.2.0...4.3.0) (2026-05-27)
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* **init:** open the browser wizard directly when the GUI is usable ([aef9c0f](https://github.com/event4u-app/agent-config/commit/aef9c0ff10a06ab1e057bb93dbb8ec908398673e))
|
|
122
|
+
|
|
123
|
+
### Documentation
|
|
124
|
+
|
|
125
|
+
* **gui-wizard:** init opens the GUI in the TS CLI, not via install.py ([7a2a29d](https://github.com/event4u-app/agent-config/commit/7a2a29d5878f6177aea0d710bed11e89d4c35c36))
|
|
126
|
+
|
|
127
|
+
### Tests
|
|
128
|
+
|
|
129
|
+
* **init:** cover GUI-vs-CLI routing for the install front-end ([2f593a6](https://github.com/event4u-app/agent-config/commit/2f593a6bc52996ebc189aeeb595ca4d513a332e5))
|
|
130
|
+
|
|
131
|
+
Tests: 5052 (+0 since 4.2.0)
|
|
132
|
+
|
|
133
|
+
## [4.2.0](https://github.com/event4u-app/agent-config/compare/4.1.0...4.2.0) (2026-05-27)
|
|
134
|
+
|
|
135
|
+
### Features
|
|
136
|
+
|
|
137
|
+
* **wizard:** GUI apply streams the real install.py bridge (SSE) ([7d8963d](https://github.com/event4u-app/agent-config/commit/7d8963d7108671a359153c1360cca79b77a1ca5b))
|
|
138
|
+
* **install:** wire --apply-payload real-apply + NDJSON; fix GUI-launch drift ([7f1159a](https://github.com/event4u-app/agent-config/commit/7f1159a77b0de6cdafae7e913aae4e3795c2abf0))
|
|
139
|
+
|
|
140
|
+
### Bug Fixes
|
|
141
|
+
|
|
142
|
+
* **install:** validate /plan output via InstallPlanWireSchema ([4548ffe](https://github.com/event4u-app/agent-config/commit/4548ffe2275e79b7d901a5a11183f0ff7023b9bd))
|
|
143
|
+
* **lint:** allowlist cross-stack noise-segment doc in module-detect-on-the-fly ([49ee5c3](https://github.com/event4u-app/agent-config/commit/49ee5c36cdea06e7b7614b8b84ab5d7560e0d0ec))
|
|
144
|
+
* **template:** bump agent-project-settings.example pin to 4.1.0 ([7b918be](https://github.com/event4u-app/agent-config/commit/7b918be7f187c7cb2f597622fcd7a9bf3209fbe2))
|
|
145
|
+
* **settings:** add roadmap.skip_pre_run_gate to the settings schema ([2221757](https://github.com/event4u-app/agent-config/commit/2221757d7860c23b6ddd264371ff5e8f56293e67))
|
|
146
|
+
|
|
147
|
+
### Documentation
|
|
148
|
+
|
|
149
|
+
* **roadmap:** refresh dashboard after archiving single-install roadmap ([38a6c89](https://github.com/event4u-app/agent-config/commit/38a6c89971429c42823a3a60eff6f595a1010f43))
|
|
150
|
+
* **roadmap:** complete + archive road-to-single-install-source-of-truth ([ff06721](https://github.com/event4u-app/agent-config/commit/ff06721390eb09e55d4474b1e9dfd37be8b91cd8))
|
|
151
|
+
* **roadmap:** track + complete road-to-single-install-source-of-truth ([2ee7162](https://github.com/event4u-app/agent-config/commit/2ee7162b4a4040eac72096b7cda3fb3f76966561))
|
|
152
|
+
* align gui-wizard contract + README init story with the real GUI ([a2864a1](https://github.com/event4u-app/agent-config/commit/a2864a1c337d2e14f6e206e12d002d9793eb360d))
|
|
153
|
+
|
|
154
|
+
### Refactoring
|
|
155
|
+
|
|
156
|
+
* **install:** retire the parallel TypeScript apply mirror ([f4a5702](https://github.com/event4u-app/agent-config/commit/f4a5702d7919e95d7c641fe9e2788cfecef48e2c))
|
|
157
|
+
|
|
158
|
+
### Tests
|
|
159
|
+
|
|
160
|
+
* **install:** parity, headless, and WIZARD_READY handshake coverage ([ef048c9](https://github.com/event4u-app/agent-config/commit/ef048c935c33f8b63f57d4c70af5af137759c831))
|
|
161
|
+
|
|
162
|
+
### Chores
|
|
163
|
+
|
|
164
|
+
* commit leftovers ([c4e3ef1](https://github.com/event4u-app/agent-config/commit/c4e3ef1b727918ff8baf9cf3e8d014148d5182b3))
|
|
165
|
+
|
|
166
|
+
Tests: 5052 (+9 since 4.1.0)
|
|
167
|
+
|
|
168
|
+
## [4.1.0](https://github.com/event4u-app/agent-config/compare/3.3.0...4.1.0) (2026-05-27)
|
|
169
|
+
|
|
170
|
+
### Features
|
|
171
|
+
|
|
172
|
+
* **roadmap:** restore skip_pre_run_gate (default true) to suppress the process-* confirmation ([746b472](https://github.com/event4u-app/agent-config/commit/746b472cc7ebb626114042ba18c91aa93ff36383))
|
|
173
|
+
* **adoption-signal:** signal-floor contract + snapshot collector + report rollup ([0a8ad93](https://github.com/event4u-app/agent-config/commit/0a8ad9361f15e25d8ff981d25b666d2b03cbd3a2))
|
|
174
|
+
* **mcp-registry:** submission helper + tracking sheet + adoption dashboard ([817d1a5](https://github.com/event4u-app/agent-config/commit/817d1a521e826766646da862900ff54be9f0d0e4))
|
|
175
|
+
* **recruit-sessions:** runbook + preflight script + tests ([9c6f50b](https://github.com/event4u-app/agent-config/commit/9c6f50b9a9c55a4c69e7b7ace66bde970ccc6238))
|
|
176
|
+
* **ci:** ci-green-floor contract + ci_status.py phantom filter ([d5eb355](https://github.com/event4u-app/agent-config/commit/d5eb35593685b82cd554829c75fe6cdc375cf378))
|
|
177
|
+
* **bench-ab:** phase 5 — report renderer + task entries + linter + contract ([c47960f](https://github.com/event4u-app/agent-config/commit/c47960feab0cd8a69f6c5e494eefd2a5346b71b3))
|
|
178
|
+
* **bench-ab:** phase 4 — track B task corpus + runner + scoring ([9f389da](https://github.com/event4u-app/agent-config/commit/9f389da0cc6ba74436e5842e54215eece23588d2))
|
|
179
|
+
* **bench-ab:** phase 3 — track A behavioural eval A/B ([56473ae](https://github.com/event4u-app/agent-config/commit/56473ae952b897623b1ff67b838a25cc16bef558))
|
|
180
|
+
* **bench-ab:** phase 2 — runner extension + baseline cache ([cb20841](https://github.com/event4u-app/agent-config/commit/cb20841a50de1d61afce2c1c7adb20600e0f8cb3))
|
|
181
|
+
* **bench-ab:** phase 1 — variant target + clone scaffolding ([296cb68](https://github.com/event4u-app/agent-config/commit/296cb683121e6ad6970527e20b18c09b3b837008))
|
|
182
|
+
* **roadmap:** add package-impact benchmark plan ([13ad7b0](https://github.com/event4u-app/agent-config/commit/13ad7b0eea415e42617fdacc3970c5a88fcde217))
|
|
183
|
+
* **roadmap:** add skip_pre_run_gate to suppress process-* confirmation ([87f12fa](https://github.com/event4u-app/agent-config/commit/87f12faf748674994e7d9d0f1ea48689103f5664))
|
|
184
|
+
* **ci:** lint_role_experiences.py + plain-language surface contract ([9845a1b](https://github.com/event4u-app/agent-config/commit/9845a1bbfd3f1ed66dec5b5c2f9bdf4b788296ff))
|
|
185
|
+
* **roles:** add sales/support/leadership + prompts for galabau/content-creator/consultant ([1846c1c](https://github.com/event4u-app/agent-config/commit/1846c1cfbbd37def8f87181292d329b8e901d4aa))
|
|
186
|
+
* **workspace:** ship WorkspacePage UI + a11y audit + Playwright suite ([bd469cc](https://github.com/event4u-app/agent-config/commit/bd469cc6d6d9371af96b6bbf2bc58405e0fcfc03))
|
|
187
|
+
* **workspace:** add /api/v1/workspace/* server routes ([d6ef98e](https://github.com/event4u-app/agent-config/commit/d6ef98e91d5df42bcb5c999efa3e980e6a0f9e9f))
|
|
188
|
+
* **rules:** forbid decorative emojis in git surfaces ([265c3f6](https://github.com/event4u-app/agent-config/commit/265c3f6c78244eb6a56e0c1ba0613f2c0d5f5c29))
|
|
189
|
+
* **ci:** skip heavy matrices on release PRs + add release-validation workflow ([26f26b9](https://github.com/event4u-app/agent-config/commit/26f26b97acd85b09fc26b2922e7885643403afe8))
|
|
190
|
+
* **rules:** gate unsolicited PR progress comments behind personal.pr_progress_comments ([4183131](https://github.com/event4u-app/agent-config/commit/41831315f12974ba1e326953c7abb98a0f14e7c8))
|
|
191
|
+
* **install:** bash bootstrap for the v4 unified setup wizard ([5519441](https://github.com/event4u-app/agent-config/commit/551944156c5c330a1b703e12ffba9bb3612ccdae))
|
|
192
|
+
* **install:** wizard conflict UI + recovery + continue + backup screens ([462cfbf](https://github.com/event4u-app/agent-config/commit/462cfbfa77583e50ea4aae167a4c2318ee7f0cb2))
|
|
193
|
+
* **install:** wizard state → plan (Phase B2) ([5e73633](https://github.com/event4u-app/agent-config/commit/5e736331710c13d4af8f6ec0283e0b32fe6693f1))
|
|
194
|
+
* **install:** unified setup wizard dispatch + install API with SSE progress ([4f932e1](https://github.com/event4u-app/agent-config/commit/4f932e1707645facbf1967cca086a182f6416b19))
|
|
195
|
+
* **install:** port AI-tool bridge generators (A6) ([62234bf](https://github.com/event4u-app/agent-config/commit/62234bf89ca2469bd1e854ea3dba3ddc0bb3a7b0))
|
|
196
|
+
* **install:** conflict resolution strategies (A5) ([b0f39f8](https://github.com/event4u-app/agent-config/commit/b0f39f827051cd05a838c6a07942678080574d01))
|
|
197
|
+
* **install:** atomic write + transaction log + apply pipeline (A4) ([885fc99](https://github.com/event4u-app/agent-config/commit/885fc9949655bec37d73659e954eb76bee3664b4))
|
|
198
|
+
* **install:** plan generator with conflict diffing (A3) ([81f3298](https://github.com/event4u-app/agent-config/commit/81f3298c04b8ccd6de5d277bafdf0bc1d7b88110))
|
|
199
|
+
* **install:** port project + AI-tool detection (A2) ([0f5c977](https://github.com/event4u-app/agent-config/commit/0f5c97720e188d6e4410f84638979d18289f4aa5))
|
|
200
|
+
* **install:** scaffold TS install-engine workspace (A1) ([3a2e41c](https://github.com/event4u-app/agent-config/commit/3a2e41c29f6516db35a75d26167ac460e1aad7e1))
|
|
201
|
+
* **ui:** unify shell with 6-tab navigation (Setup, Tasks, Council, Memory, Explain, Workspace) ([5ad6f22](https://github.com/event4u-app/agent-config/commit/5ad6f22abfd4cf29b6f5d4c7e8cfddfd5b126ad7))
|
|
202
|
+
* **cli:** wire extended-steps flag through setup command ([4192d8d](https://github.com/event4u-app/agent-config/commit/4192d8d89fbb985559bda6549c526f796c1c9c81))
|
|
203
|
+
* **wizard:** expand to 10-step extended flow with ai-tools, packs, modules ([55f88da](https://github.com/event4u-app/agent-config/commit/55f88daf48fa66ff51f892c6ef439f8b1dc0b8be))
|
|
204
|
+
* **wizard:** scope-guard + probe + harness-expectations endpoints ([3ced286](https://github.com/event4u-app/agent-config/commit/3ced2864425f9f2eb0906ff5ecd163320d12a174))
|
|
205
|
+
* **install:** canonical-channel discipline + scope guard + skill probe ([bbd434c](https://github.com/event4u-app/agent-config/commit/bbd434c4655e96c0c44919ea01ba11b8dd6e4e80))
|
|
206
|
+
* **modules:** on-the-fly module detection skill + acknowledge flag ([10d0044](https://github.com/event4u-app/agent-config/commit/10d00441f8a2fe23b1eb98fa0f87cd3bad859b61))
|
|
207
|
+
* **wizard:** add modules step to onboarding GUI ([92cc851](https://github.com/event4u-app/agent-config/commit/92cc851f4e57e83e64906202925cfc74f24293a7))
|
|
208
|
+
* **skills:** per-module agents/ folder discovery (Phase D) ([c174f73](https://github.com/event4u-app/agent-config/commit/c174f73978f08929cb84f734416c6d4f35d903c7))
|
|
209
|
+
* **skills:** generalize module-management + neutrality linter (Phase C) ([c653f39](https://github.com/event4u-app/agent-config/commit/c653f396624835732aa083df7d76ca16876e92d7))
|
|
210
|
+
* **install:** detect modules during install + /agents init (Phase B) ([c0e9b6a](https://github.com/event4u-app/agent-config/commit/c0e9b6aa5da93a752271b45383d335930024e82f))
|
|
211
|
+
* **modules:** add modules config block + loader (Phase A) ([2bd0bd2](https://github.com/event4u-app/agent-config/commit/2bd0bd20acacc06b6c342ced4e08017145e715a8))
|
|
212
|
+
|
|
213
|
+
### Bug Fixes
|
|
214
|
+
|
|
215
|
+
* **ci:** allow agents/.agent-tools.yml at agents/ root ([eadb5fa](https://github.com/event4u-app/agent-config/commit/eadb5fa290c3edbae8763ea1a2fa605fa549f35b))
|
|
216
|
+
* **ci:** trim AGENTS.md back under Thin-Root 3000-char hard cap ([1a2530b](https://github.com/event4u-app/agent-config/commit/1a2530b9670fb9088ed1a42d91c007c54975f142))
|
|
217
|
+
* **ci:** minimal retirement stub at packages/core/installer/ for the legacy Node-Tests job ([ae37148](https://github.com/event4u-app/agent-config/commit/ae371487c1c8c44ba0aa837ea42ca3bbd9b5cd3b))
|
|
218
|
+
* **skill-lint:** mirror agent-handoff trigger_context fix into compressed copy ([b17c4ef](https://github.com/event4u-app/agent-config/commit/b17c4ef8cfde53ddeb7ba764622020203a61b10b))
|
|
219
|
+
* **projection:** drop stale .claude/skills/install-via-agent/SKILL.md symlink ([21a6588](https://github.com/event4u-app/agent-config/commit/21a6588b9d9bf71cc322bffabf299585b3493fab))
|
|
220
|
+
* **ci:** bump always-rule top-3 concentration ceiling 10_900 → 11_300 ([8a7f301](https://github.com/event4u-app/agent-config/commit/8a7f301935d3bd28306bbdd098071b522eaf6f1b))
|
|
221
|
+
* **portability:** rephrase `task sync` → "sync pipeline" in cheap-question-mechanics ([5341087](https://github.com/event4u-app/agent-config/commit/534108756e13a8ddec4bb27d6a3e9ebd7a677aec))
|
|
222
|
+
* **ci:** clear v4 install-cutover blockers on PR #244 ([a031da4](https://github.com/event4u-app/agent-config/commit/a031da428c1427ea8080d56cc11c2e3db7efa356))
|
|
223
|
+
* **authority:** block execution offers after roadmap/vision artifact save ([d30d441](https://github.com/event4u-app/agent-config/commit/d30d441e27c0820df82102e7afa4a12e4cb45cac))
|
|
224
|
+
* **installer:** accept monorepo packs/<pack>/.agent-src.uncompressed/ prefix ([ac0b716](https://github.com/event4u-app/agent-config/commit/ac0b71651512b39c1f207204b1e3b02d33440031))
|
|
225
|
+
* **ci:** AGENTS.md size cap + scope_guard bash 5 set -e compatibility ([6018308](https://github.com/event4u-app/agent-config/commit/6018308ec622e29eaab42c35d43b462569a192db))
|
|
226
|
+
* **tests:** mirror agent_settings.py into work_engine template copy ([a755bb7](https://github.com/event4u-app/agent-config/commit/a755bb7cc2a0cc8b3f4dcbf2c24ba37ef8738472))
|
|
227
|
+
* **adr:** allow council refs in ADR decision-trace blocks ([f069596](https://github.com/event4u-app/agent-config/commit/f069596537c8ebd4ad6f2d828357d29e3a835739))
|
|
228
|
+
* **contracts:** align stability frontmatter for v0/design contracts ([f8020e9](https://github.com/event4u-app/agent-config/commit/f8020e94acee9639410a60038357c9db21b9fd2d))
|
|
229
|
+
* **tests:** mirror agent_settings.py into work_engine template copy ([029e9c4](https://github.com/event4u-app/agent-config/commit/029e9c4d967974aa7acf25b3331f9bf4e80dcc4d))
|
|
230
|
+
* **lint-agents-md:** trim consumer-template Thin-Root bullet ([dc4e8e6](https://github.com/event4u-app/agent-config/commit/dc4e8e6253ba081799e9f4c84c151bb442af75b3))
|
|
231
|
+
* **skill-lint:** trim module-management description + add analysis gate ([046ef48](https://github.com/event4u-app/agent-config/commit/046ef48ed7f318875fc6cf84157fe75c432f9608))
|
|
232
|
+
* **ci:** skip agents/tmp + allowlist module-aware Laravel-shape examples ([c351758](https://github.com/event4u-app/agent-config/commit/c351758daedc76b2234b7fab8643403b11173e64))
|
|
233
|
+
* **check-refs:** mark forward-ref to recruit-sessions/01-galabau-owner with ref-ignore ([dea821a](https://github.com/event4u-app/agent-config/commit/dea821af02dbd335884f95f89b868c55e6338cce))
|
|
234
|
+
|
|
235
|
+
### Performance
|
|
236
|
+
|
|
237
|
+
* **ci:** extract windows-lockfile + python-version sweep to path-filtered workflows ([e2d17f0](https://github.com/event4u-app/agent-config/commit/e2d17f071149884505d10e246421d13b67efed58))
|
|
238
|
+
|
|
239
|
+
### Documentation
|
|
240
|
+
|
|
241
|
+
* **posture:** record 2026-05 feedback citation against the cancellation wall ([f96b9c7](https://github.com/event4u-app/agent-config/commit/f96b9c7973c8be8d33252ad0330c8bd3126b4341))
|
|
242
|
+
* **ci:** wire `task ci:required-checks` + cross-links + archive roadmap ([069833c](https://github.com/event4u-app/agent-config/commit/069833c00cf13e3af34bd0328daecce61ef0ab11))
|
|
243
|
+
* **ci:** release-PR gating contract + shape detector + tests ([380e059](https://github.com/event4u-app/agent-config/commit/380e0591dcb661cb3da2e84089bcc1b6fb5cf397))
|
|
244
|
+
* **internal:** document new umbrella occupants in AGENTS.md and internal/README.md ([0b1a384](https://github.com/event4u-app/agent-config/commit/0b1a384db1545576208c50accebba92977ded335))
|
|
245
|
+
* **roadmap:** mark Phase B3-E3 done + archive road-to-unified-setup ([64162ab](https://github.com/event4u-app/agent-config/commit/64162abda143286d058b432018f0058fc71cca98))
|
|
246
|
+
* **roadmap:** mark Phase B0+B1 done on road-to-unified-setup ([098b809](https://github.com/event4u-app/agent-config/commit/098b8096d09449e2b358333691cc50f20ded5a58))
|
|
247
|
+
* **roadmap:** mark Phase A (A1-A6) done on road-to-unified-setup ([49a983b](https://github.com/event4u-app/agent-config/commit/49a983bcfc0a2974f41e53dbabed209730eac682))
|
|
248
|
+
* **roadmap:** add road-to-unified-setup v4.0.0 plan ([9601a81](https://github.com/event4u-app/agent-config/commit/9601a81fa88c248e9e7a4941ab25a462853953f1))
|
|
249
|
+
* distribution-channels + install-scopes + harness-expectations ([1351f51](https://github.com/event4u-app/agent-config/commit/1351f5102aabec85e09d7bc1433aeb265ac706f4))
|
|
250
|
+
* **roadmap:** close Phase E - Step 4 Won't do, archive roadmap ([842ef8e](https://github.com/event4u-app/agent-config/commit/842ef8eec2599a1e38b633a88db99afccaaf0f8b))
|
|
251
|
+
* **roadmap:** close Phase E for road-to-configurable-modules ([6cd2b56](https://github.com/event4u-app/agent-config/commit/6cd2b56e302b81ec601544bd90a5f51295d98c43))
|
|
252
|
+
* **roadmap:** mark configurable-modules Phases A-D complete + regen dashboard ([c4f1682](https://github.com/event4u-app/agent-config/commit/c4f16829f13d4bb4c727be4cd1f77bf90407e015))
|
|
253
|
+
* **roadmap:** land 5 new roadmaps + regen progress dashboard ([94c5192](https://github.com/event4u-app/agent-config/commit/94c5192090aa54df2958120224d33869b707bceb))
|
|
254
|
+
|
|
255
|
+
### Refactoring
|
|
256
|
+
|
|
257
|
+
* **naming:** rename compress→condense and caveman→telegraph across the suite ([6a72697](https://github.com/event4u-app/agent-config/commit/6a7269713c11dd10ae2b975d921207de2e0e08de))
|
|
258
|
+
* relocate .compression-hashes.json + .agent-tools.yml and rewrite path consumers ([6e545c8](https://github.com/event4u-app/agent-config/commit/6e545c8563aff3e0dc9c3c9b80148d4bc83c4337))
|
|
259
|
+
* **internal:** move docker/ + schemas/ to internal/ umbrella ([5cf589b](https://github.com/event4u-app/agent-config/commit/5cf589bbefdaedf29e01a8b906f59176d690ed0e))
|
|
260
|
+
|
|
261
|
+
### Tests
|
|
262
|
+
|
|
263
|
+
* regression coverage for distribution-channels track ([5ddc493](https://github.com/event4u-app/agent-config/commit/5ddc493fac8b05ec297f4b0f1714fb294f402ef7))
|
|
264
|
+
|
|
265
|
+
### Chores
|
|
266
|
+
|
|
267
|
+
* **roadmap:** wire ci:status + adoption:* tasks; close out adoption-proof-and-ci-green ([7421b6d](https://github.com/event4u-app/agent-config/commit/7421b6d52fa10e4e327d142717e0ee5f31f86747))
|
|
268
|
+
* add new hooks ([75708a5](https://github.com/event4u-app/agent-config/commit/75708a5bbde1380cb1ec54f6bc8aca086073f7a6))
|
|
269
|
+
* **roadmap:** close out frictionless-employee-workspace + regen dashboard ([5f1d376](https://github.com/event4u-app/agent-config/commit/5f1d376e741704a7602fefd283b469326ff749f0))
|
|
270
|
+
* **roadmaps:** archive road-to-deep-root-restructure (15/15 closed) ([1088332](https://github.com/event4u-app/agent-config/commit/10883323745485cab9ed7aaa3af12789a169549f))
|
|
271
|
+
* regenerate packages/core/{README.md,pack.yaml} after the new rule ([1847ae0](https://github.com/event4u-app/agent-config/commit/1847ae0e81cf764ec8dbe7e4dab49bac4d5f8433))
|
|
272
|
+
* update gitignor ([cc9a247](https://github.com/event4u-app/agent-config/commit/cc9a247beef83644de525d4f5574bc544b78cbaa))
|
|
273
|
+
* **docs:** drop command count from 136 → 135 after install-via-agent removal ([fecba73](https://github.com/event4u-app/agent-config/commit/fecba73b0f5b9c0c4a723a860cad0b0aff0f4a1f))
|
|
274
|
+
* **release:** bump to v4.0.0 + CHANGELOG hard-cut entry ([fa538ae](https://github.com/event4u-app/agent-config/commit/fa538ae6a347398925c06b89ebaa1a1809fd7a39))
|
|
275
|
+
* **install:** remove legacy TS installer workspace + reference cleanup ([3aa1e93](https://github.com/event4u-app/agent-config/commit/3aa1e93f58f98d6d0feeb1e066674a21eeaf2f40))
|
|
276
|
+
* **commands:** harden agent-handoff trigger detection and fenced-output contract ([1be7c7c](https://github.com/event4u-app/agent-config/commit/1be7c7ca813036129449e5020ab9dd78f02d4910))
|
|
277
|
+
* **gitignore:** close nested node_modules hole, drop stale tracked entries ([0ad9963](https://github.com/event4u-app/agent-config/commit/0ad9963f705811a2cbbecc2ac591a1f4d2b82d9d))
|
|
278
|
+
* **rules:** harden commit-chunking and cheap-question floors ([d824408](https://github.com/event4u-app/agent-config/commit/d824408c021095455eacb5e6d7f8169eafb76808))
|
|
279
|
+
* **workspaces:** scope npm workspaces to installer only ([c227f53](https://github.com/event4u-app/agent-config/commit/c227f5350c533a5094f3f5954c4aec67fdf42581))
|
|
280
|
+
* **roadmap:** audits + recruit findings placeholder for distribution-channels ([e739618](https://github.com/event4u-app/agent-config/commit/e739618f239f2fa58b26e256c0873e401b0f5f53))
|
|
281
|
+
* **generated:** regenerate sync outputs + counts for module-detect-on-the-fly ([ea624f3](https://github.com/event4u-app/agent-config/commit/ea624f348a90c88d214ccf7f9bdfdbd362dfa5ee))
|
|
282
|
+
* **generated:** regenerate ownership matrix, catalog, agent index ([796f674](https://github.com/event4u-app/agent-config/commit/796f674a2d29ee4f26438a53fd1e967966111848))
|
|
283
|
+
* **template:** bump agent_config_version to 3.3.0 ([76dcbc8](https://github.com/event4u-app/agent-config/commit/76dcbc8549b771bc930fbd15f9e5e819bee0f736))
|
|
284
|
+
|
|
285
|
+
### Other
|
|
286
|
+
|
|
287
|
+
* Revert "feat(roadmap): add skip_pre_run_gate to suppress process-* confirmation" ([e918d51](https://github.com/event4u-app/agent-config/commit/e918d516140cc0d6d8f432f8207626c81334ad86))
|
|
288
|
+
|
|
289
|
+
Tests: 5043 (+105 since 3.3.0)
|
|
@@ -221,7 +221,14 @@ effect):
|
|
|
221
221
|
| `extendedSteps` | Steps | Layout |
|
|
222
222
|
|---|---|---|
|
|
223
223
|
| `false` | 9 | `welcome → editor → personality → cost → roadmap-quality → memory → ai-council → user-md → review` |
|
|
224
|
-
| `true` | 13 | `welcome → ai-tools → roles → packs →
|
|
224
|
+
| `true` | 13 | `welcome → ai-tools → roles → packs → editor → personality → cost → roadmap-quality → memory → ai-council → user-md → modules → review` |
|
|
225
|
+
|
|
226
|
+
The project-specific `modules` step (writes `.agent-project-settings.yml`, not
|
|
227
|
+
the global `.agent-settings.yml`) sits at the **end** of the extended flow,
|
|
228
|
+
just before `review` — global/user settings come first, the project step
|
|
229
|
+
comes last. Because it is no longer part of the install-only lead,
|
|
230
|
+
`setup` mode now walks it too (the lead it skips is `ai-tools → roles →
|
|
231
|
+
packs`).
|
|
225
232
|
|
|
226
233
|
The `welcome` step (Step 1, both modes) collects **name + language** up front —
|
|
227
234
|
pulled out of the user-md step so the agent knows who it's talking to before
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event4u/agent-config",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"description": "Universal AI Agent OS \u2014 audited skills, governance rules, commands, and templates for AI coding tools (Claude Code, Cursor, Windsurf, Copilot).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/scripts/condense.py
CHANGED
|
@@ -1060,6 +1060,59 @@ def generate_user_type_symlinks() -> int:
|
|
|
1060
1060
|
return total
|
|
1061
1061
|
|
|
1062
1062
|
|
|
1063
|
+
def generate_plugin_hooks() -> int:
|
|
1064
|
+
"""Generate ``hooks/hooks.json`` at the plugin root from the hook manifest.
|
|
1065
|
+
|
|
1066
|
+
Claude Code plugins auto-discover hooks at ``<plugin-root>/hooks/hooks.json``
|
|
1067
|
+
(Plugins reference). The agent-config plugin's source is the repo root
|
|
1068
|
+
(``.claude-plugin/marketplace.json``), so the file lands at
|
|
1069
|
+
``PROJECT_ROOT/hooks/hooks.json``.
|
|
1070
|
+
|
|
1071
|
+
Delivering the Claude lifecycle hooks via **plugin scope** — instead of
|
|
1072
|
+
writing them into the shared ``.claude/settings.json`` ``hooks`` array —
|
|
1073
|
+
means no shared ``hooks`` array in any settings file, so there is no
|
|
1074
|
+
collision with a neighbour tool's hooks or with a developer's
|
|
1075
|
+
``settings.local.json``. Claude Code merges plugin-scope and
|
|
1076
|
+
settings-scope hooks and dedups by command string.
|
|
1077
|
+
|
|
1078
|
+
The command is rooted at ``$CLAUDE_PROJECT_DIR`` so it resolves from
|
|
1079
|
+
plugin scope regardless of cwd; the universal dispatcher then reads
|
|
1080
|
+
``scripts/hook_manifest.yaml`` at runtime to fan out to the active
|
|
1081
|
+
concerns (each a no-op when its feature is disabled).
|
|
1082
|
+
"""
|
|
1083
|
+
manifest_path = PROJECT_ROOT / "scripts" / "hook_manifest.yaml"
|
|
1084
|
+
if not manifest_path.exists():
|
|
1085
|
+
print(" ⚠️ scripts/hook_manifest.yaml not found — skipping plugin hooks",
|
|
1086
|
+
file=sys.stderr)
|
|
1087
|
+
return 0
|
|
1088
|
+
|
|
1089
|
+
manifest = yaml.safe_load(manifest_path.read_text(encoding="utf-8")) or {}
|
|
1090
|
+
claude_events = manifest.get("platforms", {}).get("claude", {}) or {}
|
|
1091
|
+
aliases = manifest.get("native_event_aliases", {}).get("claude", {}) or {}
|
|
1092
|
+
# Reverse the native→agent-config map so we can emit native event names.
|
|
1093
|
+
ac_to_native = {ac: native for native, ac in aliases.items()}
|
|
1094
|
+
|
|
1095
|
+
hooks: dict[str, list] = {}
|
|
1096
|
+
for ac_event, concerns in claude_events.items():
|
|
1097
|
+
if not concerns:
|
|
1098
|
+
continue
|
|
1099
|
+
native = ac_to_native.get(ac_event)
|
|
1100
|
+
if native is None:
|
|
1101
|
+
continue
|
|
1102
|
+
command = (
|
|
1103
|
+
'"$CLAUDE_PROJECT_DIR"/agent-config dispatch:hook '
|
|
1104
|
+
f"--platform claude --event {ac_event} --native-event {native}"
|
|
1105
|
+
)
|
|
1106
|
+
hooks[native] = [{"hooks": [{"type": "command", "command": command}]}]
|
|
1107
|
+
|
|
1108
|
+
hooks_dir = PROJECT_ROOT / "hooks"
|
|
1109
|
+
hooks_dir.mkdir(parents=True, exist_ok=True)
|
|
1110
|
+
out = hooks_dir / "hooks.json"
|
|
1111
|
+
out.write_text(json.dumps({"hooks": hooks}, indent=2) + "\n", encoding="utf-8")
|
|
1112
|
+
info(f" ✅ Generated hooks/hooks.json ({len(hooks)} Claude plugin hooks)")
|
|
1113
|
+
return len(hooks)
|
|
1114
|
+
|
|
1115
|
+
|
|
1063
1116
|
def generate_tools() -> None:
|
|
1064
1117
|
"""Generate all tool-specific directories and files.
|
|
1065
1118
|
|
|
@@ -1074,6 +1127,7 @@ def generate_tools() -> None:
|
|
|
1074
1127
|
generate_gemini_md()
|
|
1075
1128
|
skills = generate_claude_skills() if _tool_active("claude-code") else 0
|
|
1076
1129
|
commands = generate_claude_commands() if _tool_active("claude-code") else 0
|
|
1130
|
+
plugin_hooks = generate_plugin_hooks() if _tool_active("claude-code") else 0
|
|
1077
1131
|
personas = generate_persona_symlinks()
|
|
1078
1132
|
user_types = generate_user_type_symlinks()
|
|
1079
1133
|
cursor_mdc = generate_cursor_mdc_rules() if _tool_active("cursor") else 0
|
|
@@ -1082,7 +1136,8 @@ def generate_tools() -> None:
|
|
|
1082
1136
|
windsurf_wf = generate_windsurf_workflows() if _tool_active("windsurf") else 0
|
|
1083
1137
|
summary = (
|
|
1084
1138
|
f"✅ generate-tools — rules={rules} skills={skills} "
|
|
1085
|
-
f"commands={commands}
|
|
1139
|
+
f"commands={commands} plugin_hooks={plugin_hooks} "
|
|
1140
|
+
f"personas={personas} user_types={user_types} "
|
|
1086
1141
|
f"cursor_mdc={cursor_mdc} windsurf_rules={windsurf_modern} "
|
|
1087
1142
|
f"cursor_commands={cursor_cmds} windsurf_workflows={windsurf_wf} "
|
|
1088
1143
|
f"windsurfrules={windsurfrules}"
|
package/scripts/install.py
CHANGED
|
@@ -1083,52 +1083,25 @@ def ensure_augment_user_hooks(package_root: Path, force: bool) -> list[dict[str,
|
|
|
1083
1083
|
# concern fires on the same logical surface across platforms — the
|
|
1084
1084
|
# contract from agents/settings/contexts/hardening-pattern.md § Cross-platform
|
|
1085
1085
|
# parity.
|
|
1086
|
-
CLAUDE_DISPATCHER_BINDINGS = (
|
|
1087
|
-
("session_start", "SessionStart"),
|
|
1088
|
-
("session_end", "SessionEnd"),
|
|
1089
|
-
("stop", "Stop"),
|
|
1090
|
-
("user_prompt_submit", "UserPromptSubmit"),
|
|
1091
|
-
("post_tool_use", "PostToolUse"),
|
|
1092
|
-
)
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
def _claude_dispatch_block(ac_event: str, native: str) -> dict:
|
|
1096
|
-
"""Single hook entry routing the event through the universal dispatcher."""
|
|
1097
|
-
return {
|
|
1098
|
-
"hooks": [
|
|
1099
|
-
{
|
|
1100
|
-
"type": "command",
|
|
1101
|
-
"command": (
|
|
1102
|
-
f"./agent-config dispatch:hook "
|
|
1103
|
-
f"--platform claude --event {ac_event} "
|
|
1104
|
-
f"--native-event {native}"
|
|
1105
|
-
),
|
|
1106
|
-
},
|
|
1107
|
-
],
|
|
1108
|
-
}
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
1086
|
def ensure_claude_bridge(project_root: Path, force: bool) -> list[dict[str, Any]]:
|
|
1112
|
-
"""Deploy .claude/settings.json with plugin enablement
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1087
|
+
"""Deploy .claude/settings.json with plugin enablement only.
|
|
1088
|
+
|
|
1089
|
+
Claude lifecycle hooks are delivered via **plugin scope**
|
|
1090
|
+
(`hooks/hooks.json`, generated by `condense.generate_plugin_hooks`), not
|
|
1091
|
+
written into the shared `.claude/settings.json` `hooks` array. Writing
|
|
1092
|
+
them here would monopolise that array and collide with any neighbour
|
|
1093
|
+
tool's hooks or a developer's `settings.local.json` — Claude Code merges
|
|
1094
|
+
plugin-scope and settings-scope hooks at runtime and dedups by command
|
|
1095
|
+
string, so plugin delivery needs no `hooks` block here.
|
|
1096
|
+
|
|
1097
|
+
The plugin id matches `.claude-plugin/marketplace.json`
|
|
1098
|
+
(`<plugin>@<marketplace>` = `agent-config@event4u-agent-config`) and the
|
|
1099
|
+
documented install command in docs/installation.md. Idempotent:
|
|
1100
|
+
`enabledPlugins` is a dict-merge, so the key coexists with any other
|
|
1101
|
+
plugin a neighbour tool enabled.
|
|
1122
1102
|
"""
|
|
1123
|
-
per_event: dict[str, list] = {}
|
|
1124
|
-
for ac_event, native in CLAUDE_DISPATCHER_BINDINGS:
|
|
1125
|
-
per_event.setdefault(native, []).append(
|
|
1126
|
-
_claude_dispatch_block(ac_event, native)
|
|
1127
|
-
)
|
|
1128
|
-
|
|
1129
1103
|
bridge = {
|
|
1130
|
-
"enabledPlugins": {"agent-
|
|
1131
|
-
"hooks": per_event,
|
|
1104
|
+
"enabledPlugins": {"agent-config@event4u-agent-config": True},
|
|
1132
1105
|
}
|
|
1133
1106
|
return merge_json_file(
|
|
1134
1107
|
project_root / ".claude" / "settings.json", bridge, force, ".claude/settings.json",
|