@event4u/agent-config 11.0.0 → 12.1.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 +173 -229
- package/agents/templates/.ai-council.yml.example +46 -3
- package/dist/agent-src/commands/agent-handoff.md +0 -1
- package/dist/agent-src/commands/agent-status.md +0 -1
- package/dist/agent-src/commands/agents/audit.md +0 -1
- package/dist/agent-src/commands/agents/init.md +0 -1
- package/dist/agent-src/commands/agents/optimize.md +0 -1
- package/dist/agent-src/commands/agents/user/accept.md +0 -1
- package/dist/agent-src/commands/agents/user/delete.md +0 -1
- package/dist/agent-src/commands/agents/user/init.md +0 -1
- package/dist/agent-src/commands/agents/user/review.md +0 -1
- package/dist/agent-src/commands/agents/user/show.md +0 -1
- package/dist/agent-src/commands/agents/user/update.md +0 -1
- package/dist/agent-src/commands/agents/user.md +0 -1
- package/dist/agent-src/commands/agents.md +0 -1
- package/dist/agent-src/commands/analytics/prune.md +0 -1
- package/dist/agent-src/commands/analytics/show.md +0 -1
- package/dist/agent-src/commands/analytics.md +0 -1
- package/dist/agent-src/commands/analyze/conformance.md +0 -1
- package/dist/agent-src/commands/analyze/decision.md +0 -1
- package/dist/agent-src/commands/analyze/inbox.md +0 -1
- package/dist/agent-src/commands/analyze/incident.md +0 -1
- package/dist/agent-src/commands/analyze/near-miss.md +0 -1
- package/dist/agent-src/commands/analyze/postmortem.md +0 -1
- package/dist/agent-src/commands/analyze/premortem.md +0 -1
- package/dist/agent-src/commands/analyze/reference-repo.md +0 -1
- package/dist/agent-src/commands/analyze.md +0 -1
- package/dist/agent-src/commands/brand/identity.md +0 -1
- package/dist/agent-src/commands/brand/review.md +0 -1
- package/dist/agent-src/commands/brand/strategy.md +0 -1
- package/dist/agent-src/commands/brand/tokens.md +0 -1
- package/dist/agent-src/commands/brand/voice.md +0 -1
- package/dist/agent-src/commands/brand.md +0 -1
- package/dist/agent-src/commands/bug/fix.md +0 -1
- package/dist/agent-src/commands/bug/investigate.md +0 -1
- package/dist/agent-src/commands/bug.md +0 -1
- package/dist/agent-src/commands/challenge-me/vision.md +0 -1
- package/dist/agent-src/commands/challenge-me/with-docs.md +0 -1
- package/dist/agent-src/commands/challenge-me.md +0 -1
- package/dist/agent-src/commands/chat-history/import.md +0 -1
- package/dist/agent-src/commands/chat-history.md +0 -1
- package/dist/agent-src/commands/check-current-md.md +0 -1
- package/dist/agent-src/commands/commit/in-chunks.md +0 -1
- package/dist/agent-src/commands/commit.md +0 -1
- package/dist/agent-src/commands/condense.md +0 -1
- package/dist/agent-src/commands/context/create.md +0 -1
- package/dist/agent-src/commands/context/refactor.md +0 -1
- package/dist/agent-src/commands/context.md +0 -1
- package/dist/agent-src/commands/contribution-precheck.md +0 -1
- package/dist/agent-src/commands/cost/profile.md +0 -1
- package/dist/agent-src/commands/cost/report.md +0 -1
- package/dist/agent-src/commands/cost.md +0 -1
- package/dist/agent-src/commands/council/analysis.md +0 -1
- package/dist/agent-src/commands/council/debate.md +0 -1
- package/dist/agent-src/commands/council/default.md +0 -1
- package/dist/agent-src/commands/council/design.md +0 -1
- package/dist/agent-src/commands/council/optimize.md +0 -1
- package/dist/agent-src/commands/council/pr.md +0 -1
- package/dist/agent-src/commands/council.md +0 -1
- package/dist/agent-src/commands/design-system/capture.md +0 -1
- package/dist/agent-src/commands/design-system/generate.md +0 -1
- package/dist/agent-src/commands/design-system/import.md +0 -1
- package/dist/agent-src/commands/design-system.md +0 -1
- package/dist/agent-src/commands/estimate-ticket.md +0 -1
- package/dist/agent-src/commands/explain-run.md +0 -1
- package/dist/agent-src/commands/feature/dev.md +0 -1
- package/dist/agent-src/commands/feature/explore.md +0 -1
- package/dist/agent-src/commands/feature/plan.md +0 -1
- package/dist/agent-src/commands/feature/refactor.md +0 -1
- package/dist/agent-src/commands/feature/roadmap.md +0 -1
- package/dist/agent-src/commands/feature.md +0 -1
- package/dist/agent-src/commands/fix/ci.md +0 -1
- package/dist/agent-src/commands/fix/comments.md +0 -1
- package/dist/agent-src/commands/fix/portability.md +0 -1
- package/dist/agent-src/commands/fix/pr-comments-loop.md +0 -1
- package/dist/agent-src/commands/fix/pr-comments.md +0 -1
- package/dist/agent-src/commands/fix/quality.md +0 -1
- package/dist/agent-src/commands/fix/refs.md +0 -1
- package/dist/agent-src/commands/fix/route.md +0 -1
- package/dist/agent-src/commands/fix/seeder.md +0 -1
- package/dist/agent-src/commands/fix.md +0 -1
- package/dist/agent-src/commands/ghostwriter/delete.md +0 -1
- package/dist/agent-src/commands/ghostwriter/fetch.md +0 -1
- package/dist/agent-src/commands/ghostwriter/list.md +0 -1
- package/dist/agent-src/commands/ghostwriter/show.md +0 -1
- package/dist/agent-src/commands/ghostwriter/write.md +0 -1
- package/dist/agent-src/commands/ghostwriter.md +0 -1
- package/dist/agent-src/commands/grill-me.md +0 -1
- package/dist/agent-src/commands/humanize.md +0 -1
- package/dist/agent-src/commands/image/analyse.md +0 -1
- package/dist/agent-src/commands/image/create.md +0 -1
- package/dist/agent-src/commands/image/verify.md +0 -1
- package/dist/agent-src/commands/image.md +0 -1
- package/dist/agent-src/commands/implement-ticket.md +0 -1
- package/dist/agent-src/commands/jira-ticket.md +0 -1
- package/dist/agent-src/commands/judge/on-diff.md +0 -1
- package/dist/agent-src/commands/judge/solo.md +0 -1
- package/dist/agent-src/commands/judge/steps.md +0 -1
- package/dist/agent-src/commands/judge.md +0 -1
- package/dist/agent-src/commands/knowledge/cross-repo.md +0 -1
- package/dist/agent-src/commands/knowledge/forget.md +0 -1
- package/dist/agent-src/commands/knowledge/ingest.md +0 -1
- package/dist/agent-src/commands/knowledge/list.md +0 -1
- package/dist/agent-src/commands/knowledge.md +0 -1
- package/dist/agent-src/commands/memory/add.md +0 -1
- package/dist/agent-src/commands/memory/learn-low-impact.md +0 -1
- package/dist/agent-src/commands/memory/load.md +0 -1
- package/dist/agent-src/commands/memory/mine-session.md +0 -1
- package/dist/agent-src/commands/memory/promote.md +0 -1
- package/dist/agent-src/commands/memory/propose.md +0 -1
- package/dist/agent-src/commands/memory.md +0 -1
- package/dist/agent-src/commands/mission/upgrade.md +0 -1
- package/dist/agent-src/commands/mode.md +0 -1
- package/dist/agent-src/commands/module/create.md +0 -1
- package/dist/agent-src/commands/module/explore.md +0 -1
- package/dist/agent-src/commands/module.md +0 -1
- package/dist/agent-src/commands/optimize/agents-dir.md +0 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +0 -1
- package/dist/agent-src/commands/optimize/deep.md +0 -1
- package/dist/agent-src/commands/optimize/project.md +0 -1
- package/dist/agent-src/commands/optimize/prompt.md +0 -1
- package/dist/agent-src/commands/optimize/rtk.md +0 -1
- package/dist/agent-src/commands/optimize/skills.md +0 -1
- package/dist/agent-src/commands/optimize.md +0 -1
- package/dist/agent-src/commands/orchestrate.md +0 -1
- package/dist/agent-src/commands/override/create.md +0 -1
- package/dist/agent-src/commands/override/manage.md +0 -1
- package/dist/agent-src/commands/override.md +0 -1
- package/dist/agent-src/commands/package/reset.md +0 -1
- package/dist/agent-src/commands/package/test.md +0 -1
- package/dist/agent-src/commands/package.md +0 -1
- package/dist/agent-src/commands/post-as/ghostwriter.md +0 -1
- package/dist/agent-src/commands/post-as/me.md +0 -1
- package/dist/agent-src/commands/post-as.md +0 -1
- package/dist/agent-src/commands/pr/create/description-only.md +0 -1
- package/dist/agent-src/commands/pr/create.md +23 -9
- package/dist/agent-src/commands/prediction-pool.md +0 -1
- package/dist/agent-src/commands/prepare-for-review.md +0 -1
- package/dist/agent-src/commands/profile/activate.md +0 -1
- package/dist/agent-src/commands/profile/deactivate.md +0 -1
- package/dist/agent-src/commands/profile/show.md +0 -1
- package/dist/agent-src/commands/profile.md +0 -1
- package/dist/agent-src/commands/project/analyze.md +0 -1
- package/dist/agent-src/commands/project/health.md +0 -1
- package/dist/agent-src/commands/project.md +0 -1
- package/dist/agent-src/commands/refine-ticket.md +0 -1
- package/dist/agent-src/commands/research/deep.md +0 -1
- package/dist/agent-src/commands/research/report.md +0 -1
- package/dist/agent-src/commands/research.md +0 -1
- package/dist/agent-src/commands/review/changes.md +0 -1
- package/dist/agent-src/commands/review/routing.md +0 -1
- package/dist/agent-src/commands/review.md +0 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +0 -1
- package/dist/agent-src/commands/roadmap/create.md +0 -1
- package/dist/agent-src/commands/roadmap/materialize.md +0 -1
- package/dist/agent-src/commands/roadmap/next.md +0 -1
- package/dist/agent-src/commands/roadmap/process-full.md +0 -1
- package/dist/agent-src/commands/roadmap/process-phase.md +0 -1
- package/dist/agent-src/commands/roadmap/process-step.md +0 -1
- package/dist/agent-src/commands/roadmap.md +0 -1
- package/dist/agent-src/commands/rule-compliance-audit.md +0 -1
- package/dist/agent-src/commands/security-audit-config.md +0 -1
- package/dist/agent-src/commands/skill/preview.md +0 -1
- package/dist/agent-src/commands/skill.md +0 -1
- package/dist/agent-src/commands/skills/discover.md +0 -1
- package/dist/agent-src/commands/skills.md +0 -1
- package/dist/agent-src/commands/sync/agent-settings.md +0 -1
- package/dist/agent-src/commands/sync/gitignore/fix.md +0 -1
- package/dist/agent-src/commands/sync/gitignore.md +0 -1
- package/dist/agent-src/commands/sync.md +0 -1
- package/dist/agent-src/commands/tdd/green.md +0 -1
- package/dist/agent-src/commands/tdd/red.md +0 -1
- package/dist/agent-src/commands/tdd/refactor.md +0 -1
- package/dist/agent-src/commands/tdd.md +0 -1
- package/dist/agent-src/commands/team/adversarial.md +0 -1
- package/dist/agent-src/commands/team/delegate.md +0 -1
- package/dist/agent-src/commands/team/review.md +0 -1
- package/dist/agent-src/commands/team/status.md +0 -1
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +0 -1
- package/dist/agent-src/commands/team-knowledge/consolidate.md +0 -1
- package/dist/agent-src/commands/team-knowledge.md +0 -1
- package/dist/agent-src/commands/team.md +0 -1
- package/dist/agent-src/commands/tests/create.md +0 -1
- package/dist/agent-src/commands/tests/e2e-heal.md +0 -1
- package/dist/agent-src/commands/tests/e2e-plan.md +0 -1
- package/dist/agent-src/commands/tests/execute.md +0 -1
- package/dist/agent-src/commands/tests.md +0 -1
- package/dist/agent-src/commands/threat-model.md +0 -1
- package/dist/agent-src/commands/update-form-request-messages.md +0 -1
- package/dist/agent-src/commands/upstream-contribute.md +0 -1
- package/dist/agent-src/commands/video/from-script.md +0 -1
- package/dist/agent-src/commands/video/from-song.md +0 -1
- package/dist/agent-src/commands/video/scene.md +0 -1
- package/dist/agent-src/commands/video/stitch.md +0 -1
- package/dist/agent-src/commands/video/storyboard.md +0 -1
- package/dist/agent-src/commands/video.md +0 -1
- package/dist/agent-src/commands/work.md +0 -1
- package/dist/agent-src/commands/worktree/cleanup.md +0 -1
- package/dist/agent-src/commands/worktree/create.md +0 -1
- package/dist/agent-src/commands/worktree/status.md +0 -1
- package/dist/agent-src/commands/worktree/verify.md +0 -1
- package/dist/agent-src/commands/worktree.md +0 -1
- package/dist/agent-src/contexts/model-recommendations.md +6 -4
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -0
- package/dist/agent-src/scripts/roadmap_gates.ts +30 -2
- package/dist/agent-src/scripts/update_roadmap_progress.ts +32 -1
- package/dist/agent-src/skills/docx-authoring/SKILL.md +1 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +9 -1
- package/dist/agent-src/skills/pdf-tools/SKILL.md +1 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +7 -7
- package/dist/agent-src/skills/skill-writing/SKILL.md +35 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +41 -3
- package/dist/cli/commands/commands.candidates.test.js +1 -1
- package/dist/cli/commands/commands.candidates.test.js.map +1 -1
- package/dist/cli/commands/commands.js +9 -15
- package/dist/cli/commands/commands.js.map +1 -1
- package/dist/cli/commands/profiles.test.js +7 -7
- package/dist/cli/commands/profiles.test.js.map +1 -1
- package/dist/cli/discovery/loadManifest.js.map +1 -1
- package/dist/cli/main.js +2 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/chunk-K34QTSD5.js +3895 -0
- package/dist/cli-delegate/{chunk-L565YFXH.js → chunk-LKZ5DOYW.js} +557 -297
- package/dist/cli-delegate/{chunk-NN4KW4HZ.js → chunk-O52B4F5S.js} +123 -2338
- package/dist/cli-delegate/cmd_conformance.js +18 -6
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_export.js +1 -1
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +1 -1
- package/dist/cli-delegate/cmd_uninstall.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +213 -412
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/hooks/dispatch.js +2588 -1082
- package/dist/install/install.mjs +744 -482
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +159 -15
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/model_tier.js +9 -0
- package/dist/scripts/_lib/model_tier.js.map +1 -1
- package/dist/scripts/condense.js +50 -0
- package/dist/scripts/condense.js.map +1 -1
- package/docs/MIGRATION.md +21 -1
- package/docs/contracts/settings-classes.md +41 -0
- package/package.json +1 -1
- package/src/agent-src/scripts/roadmap_gates.ts +30 -2
- package/src/agent-src/scripts/update_roadmap_progress.ts +32 -1
- package/src/config/agent-settings.template.yml +34 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +39 -9
- package/src/config/gate-violation-baselines.json +9 -3
- package/src/config/hook-token-budget.json +7 -1
- package/src/config/preamble-payload-budget.json +28 -0
- package/src/scripts/_dispatch.bash +52 -5
- package/src/scripts/_lib/git_common_dir.ts +173 -0
- package/src/scripts/_lib/model_tier.ts +9 -0
- package/src/scripts/_lib/release_highlights.ts +108 -7
- package/src/scripts/_lib/skill_catalogue.ts +862 -0
- package/src/scripts/ai_council/clients.ts +182 -3
- package/src/scripts/ai_council/config.ts +16 -1
- package/src/scripts/ai_council/low_impact.ts +14 -1
- package/src/scripts/ai_council/orchestrator.ts +14 -1
- package/src/scripts/ai_council/transport_resolver.ts +32 -2
- package/src/scripts/audit_command_surface.ts +21 -15
- package/src/scripts/build_catalog_index.ts +1 -1
- package/src/scripts/build_discovery_manifest.ts +30 -34
- package/src/scripts/capture_skill_catalogue.ts +185 -328
- package/src/scripts/check_branch_freshness.ts +217 -62
- package/src/scripts/check_release_published.ts +6 -2
- package/src/scripts/check_release_trunk_sync.ts +18 -2
- package/src/scripts/condense.ts +50 -1
- package/src/scripts/dispatch_r2_reviewer.ts +15 -5
- package/src/scripts/evidence_report.ts +15 -4
- package/src/scripts/gen_discovery_baseline.ts +3 -3
- package/src/scripts/hook_manifest.yaml +67 -13
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +21 -0
- package/src/scripts/hooks/subagent_ledger_hook.ts +17 -4
- package/src/scripts/hooks/tool_result_bytes_hook.ts +219 -0
- package/src/scripts/hot_context_hook.ts +13 -1
- package/src/scripts/install.ts +129 -0
- package/src/scripts/janitor.ts +77 -2
- package/src/scripts/lint_command_tiers.ts +29 -75
- package/src/scripts/lint_originality.ts +101 -14
- package/src/scripts/lint_plan_risk_register.ts +22 -9
- package/src/scripts/lint_roadmap_blockers.ts +109 -6
- package/src/scripts/lint_scheduled_deprecations.ts +738 -0
- package/src/scripts/migration_status.ts +17 -1
- package/src/scripts/probe_review_binding_drift.ts +731 -0
- package/src/scripts/release.ts +95 -1
- package/src/scripts/schemas/command.schema.json +6 -11
- package/src/scripts/schemas/skill.schema.json +12 -2
- package/src/scripts/schemas/subagent.schema.json +2 -2
- package/src/scripts/session_eol_report.ts +81 -0
- package/src/scripts/skill_linter.ts +82 -2
- package/src/scripts/workspace_doctor.ts +464 -0
- package/src/scripts/worktree_cleanup_check.ts +113 -8
- package/dist/cli-delegate/chunk-AYKQGIBG.js +0 -1594
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"discovery": {
|
|
3
3
|
"artefact_count": 607,
|
|
4
|
-
"scanner_version": "
|
|
4
|
+
"scanner_version": "de0a22b4ac4c"
|
|
5
5
|
},
|
|
6
|
-
"generated_at": "2026-08-
|
|
6
|
+
"generated_at": "2026-08-16",
|
|
7
7
|
"package": {
|
|
8
8
|
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) \u2014 every claim machine-checked, including \"zero runtime daemon\".",
|
|
9
9
|
"homepage": "https://event4u-app.github.io/agent-config",
|
|
10
10
|
"name": "@event4u/agent-config",
|
|
11
11
|
"repository": "https://github.com/event4u-app/agent-config",
|
|
12
|
-
"version": "
|
|
12
|
+
"version": "12.1.0"
|
|
13
13
|
},
|
|
14
14
|
"registries": [
|
|
15
15
|
{
|
package/dist/mcp/server.json
CHANGED
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"transport": {
|
|
10
10
|
"type": "stdio"
|
|
11
11
|
},
|
|
12
|
-
"version": "
|
|
12
|
+
"version": "12.1.0"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"repository": {
|
|
16
16
|
"source": "github",
|
|
17
17
|
"url": "https://github.com/event4u-app/agent-config"
|
|
18
18
|
},
|
|
19
|
-
"version": "
|
|
19
|
+
"version": "12.1.0"
|
|
20
20
|
}
|
package/dist/mcp/server.mjs
CHANGED
|
@@ -15262,7 +15262,7 @@ function lint_wing4_boundaries(text) {
|
|
|
15262
15262
|
}
|
|
15263
15263
|
return issues;
|
|
15264
15264
|
}
|
|
15265
|
-
function lint_execution_metadata(execution, frontmatter) {
|
|
15265
|
+
function lint_execution_metadata(execution, frontmatter, body = "") {
|
|
15266
15266
|
const issues = [];
|
|
15267
15267
|
const execType = execution.type;
|
|
15268
15268
|
if (execType !== void 0) {
|
|
@@ -15332,6 +15332,15 @@ function lint_execution_metadata(execution, frontmatter) {
|
|
|
15332
15332
|
new Issue("error", "invalid_safety_mode", `Invalid safety_mode '${String(safetyMode)}'; must be 'strict'`)
|
|
15333
15333
|
);
|
|
15334
15334
|
}
|
|
15335
|
+
if (safetyMode === "strict" && body !== "" && !STRICT_WRITE_GATE_PATTERNS.some((p) => p.test(body)) && !SKILL_REFERENCE_DEFERRAL_PATTERN.test(body)) {
|
|
15336
|
+
issues.push(
|
|
15337
|
+
new Issue(
|
|
15338
|
+
"warning",
|
|
15339
|
+
"strict_mode_missing_write_gate",
|
|
15340
|
+
"execution.safety_mode is 'strict' but the body names no precondition on the write path and defers no write-path steps to the skill's references/ \u2014 state the gate inline (propose-then-confirm, --dry-run) or defer it, per skill-writing \xA7 Action-reference split"
|
|
15341
|
+
)
|
|
15342
|
+
);
|
|
15343
|
+
}
|
|
15335
15344
|
const timeout = execution.timeout_seconds;
|
|
15336
15345
|
if (timeout !== void 0) {
|
|
15337
15346
|
if (typeof timeout !== "number" || !Number.isInteger(timeout) || timeout <= 0) {
|
|
@@ -15506,9 +15515,18 @@ function lint_skill(p, text, absPath = null) {
|
|
|
15506
15515
|
issues.push(new Issue("warning", "superseded_skill", msg));
|
|
15507
15516
|
}
|
|
15508
15517
|
}
|
|
15518
|
+
if (COMPATIBILITY_KEY_PATTERN.test(frontmatter) && !HARNESS_COMPAT_KEY_PATTERN.test(frontmatter)) {
|
|
15519
|
+
issues.push(
|
|
15520
|
+
new Issue(
|
|
15521
|
+
"warning",
|
|
15522
|
+
"deprecated_compatibility_field",
|
|
15523
|
+
"Frontmatter declares the deprecated free-text 'compatibility:' without the structured 'harness_compat:' that supersedes it \u2014 add harness_compat (see skill.schema.json and docs/MIGRATION.md \xA7 Scheduled deprecations); compatibility stays accepted until removal"
|
|
15524
|
+
)
|
|
15525
|
+
);
|
|
15526
|
+
}
|
|
15509
15527
|
const execution = parseExecutionBlock(frontmatter);
|
|
15510
15528
|
if (execution !== null) {
|
|
15511
|
-
issues.push(...lint_execution_metadata(execution, frontmatter));
|
|
15529
|
+
issues.push(...lint_execution_metadata(execution, frontmatter, text.replace(FRONTMATTER_PATTERN, "")));
|
|
15512
15530
|
}
|
|
15513
15531
|
const tierMatch = TIER_PATTERN.exec(frontmatter);
|
|
15514
15532
|
if (tierMatch && tierMatch[1] === "senior") {
|
|
@@ -18030,7 +18048,7 @@ function _isCliEntry7() {
|
|
|
18030
18048
|
return false;
|
|
18031
18049
|
}
|
|
18032
18050
|
}
|
|
18033
|
-
var _HERE4, REQUIRED_PERSONA_SECTIONS_CORE, REQUIRED_PERSONA_SECTIONS_SPECIALIST, VALID_PERSONA_TIERS, PERSONA_LINE_BUDGETS, REQUIRED_USERTYPE_SECTIONS, USERTYPE_LINE_BUDGET, VALID_PERSONA_WINGS, PERSONA_LINE_BUDGETS_BY_WING, REQUIRED_SKILL_SECTIONS, SECTION_ALIASES, RECOMMENDED_SKILL_SECTIONS, CONDITIONAL_SKILL_SECTIONS, RULE_BAD_SIGNS, FRUGALITY_WRITER_SKILLS, FRUGALITY_CHARTER_RELPATH, FRUGALITY_CHARTER_INDEX_RULES, VAGUE_VALIDATION_PATTERNS, TRIGGER_WARNING_PATTERNS, ORDERED_STEP_PATTERN, SECTION_PATTERN, FRONTMATTER_PATTERN, DESCRIPTION_PATTERN, STATUS_PATTERN, REPLACED_BY_PATTERN, TIER_PATTERN, TYPE_PATTERN, SOURCE_PATTERN, SENIOR_RELATED_SKILLS_PATTERN, SENIOR_RELATED_WHEN_PATTERN, SENIOR_RELATED_WHEN_NOT_PATTERN, SENIOR_PROACTIVE_PATTERN, SENIOR_OUTPUT_PATTERN, H1_PATTERN, DOUBLE_BLANK_PATTERN, VALID_RULE_TYPES, VALID_RULE_SOURCES, ROUTER_ALLOWED_TRIGGER_KEYS, KERNEL_RULE_IDS2, VALID_EXECUTION_TYPES, VALID_EXECUTION_HANDLERS, VALID_EXECUTION_SAFETY_MODES, EXTERNAL_EXECUTION_HANDLERS, RUNTIME_REQUIRES_BLOCK_PATTERN, VALID_EXECUTION_FIELDS, WING3_SPINE_SLOTS, CONTEXT_SPINE_INLINE_PATTERN, WING3_SAAS_URL_PATTERN, WING3_VENDOR_BLACKLIST, WING3_STACK_LOCKED_PATTERN, WING3_CHANNEL_TACTIC_PATTERN, WING4_SPINE_SLOTS, WING4_SAAS_URL_PATTERN, WING4_VENDOR_BLACKLIST, WING4_STAGE_AGNOSTIC_PATTERN, Issue, LintResult, _ROLE_CONTRACT_CANDIDATES, _ROLE_CONTRACT_SLUGS_CACHE, _ROLE_CONTRACT_REF_PATTERN, PROCEDURE_HEADING_PATTERN, COMMAND_FRONTMATTER_DELEGATION_KEYS, MD_LINK_PATTERN_G, NAME_PATTERN, DISABLE_MODEL_PATTERN, _INSPECT_VERB_PATTERN, last_changed_scope_reason, last_changed_base_diff_ok, _INTERACTION_NAME_PATTERNS, _INTERACTION_CONTENT_KEYWORDS, _EXEC_FILE_SIGNALS, _EXEC_CONTENT_SIGNALS, _TASK_TYPE_SIGNALS, _VERIFICATION_TOOLS, _FRUGALITY_STANDARDS_PATTERN, _FRUGALITY_CHARTER_LINK_PATTERN, _MD_LINK_PATTERN, _MALICE_CRED_EXFIL, _MALICE_REMOTE_EXEC, _MALICE_FORCE_PUSH, _MALICE_CHMOD_SECRETS, _MALICE_SHELL_INJECT, _MALICE_PATTERNS, _NAG_UPDATE_CHECK, _NAG_STAY_CURRENT, _NAG_SELF_PROMO, _NAG_BEST_SKILL, _NAG_MUST_USE, _NAG_ALWAYS_USE, _NAG_PATTERNS, _OUTPUT_SCHEMA_KEY_PATTERN, _SCHEMA_ARTEFACT_TYPES, ArgError, isCliEntry2;
|
|
18051
|
+
var _HERE4, REQUIRED_PERSONA_SECTIONS_CORE, REQUIRED_PERSONA_SECTIONS_SPECIALIST, VALID_PERSONA_TIERS, PERSONA_LINE_BUDGETS, REQUIRED_USERTYPE_SECTIONS, USERTYPE_LINE_BUDGET, VALID_PERSONA_WINGS, PERSONA_LINE_BUDGETS_BY_WING, REQUIRED_SKILL_SECTIONS, SECTION_ALIASES, RECOMMENDED_SKILL_SECTIONS, CONDITIONAL_SKILL_SECTIONS, RULE_BAD_SIGNS, FRUGALITY_WRITER_SKILLS, FRUGALITY_CHARTER_RELPATH, FRUGALITY_CHARTER_INDEX_RULES, VAGUE_VALIDATION_PATTERNS, TRIGGER_WARNING_PATTERNS, ORDERED_STEP_PATTERN, SECTION_PATTERN, FRONTMATTER_PATTERN, DESCRIPTION_PATTERN, STATUS_PATTERN, REPLACED_BY_PATTERN, TIER_PATTERN, TYPE_PATTERN, SOURCE_PATTERN, SENIOR_RELATED_SKILLS_PATTERN, SENIOR_RELATED_WHEN_PATTERN, SENIOR_RELATED_WHEN_NOT_PATTERN, SENIOR_PROACTIVE_PATTERN, SENIOR_OUTPUT_PATTERN, H1_PATTERN, DOUBLE_BLANK_PATTERN, VALID_RULE_TYPES, VALID_RULE_SOURCES, ROUTER_ALLOWED_TRIGGER_KEYS, KERNEL_RULE_IDS2, VALID_EXECUTION_TYPES, VALID_EXECUTION_HANDLERS, VALID_EXECUTION_SAFETY_MODES, EXTERNAL_EXECUTION_HANDLERS, RUNTIME_REQUIRES_BLOCK_PATTERN, COMPATIBILITY_KEY_PATTERN, HARNESS_COMPAT_KEY_PATTERN, STRICT_WRITE_GATE_PATTERNS, SKILL_REFERENCE_DEFERRAL_PATTERN, VALID_EXECUTION_FIELDS, WING3_SPINE_SLOTS, CONTEXT_SPINE_INLINE_PATTERN, WING3_SAAS_URL_PATTERN, WING3_VENDOR_BLACKLIST, WING3_STACK_LOCKED_PATTERN, WING3_CHANNEL_TACTIC_PATTERN, WING4_SPINE_SLOTS, WING4_SAAS_URL_PATTERN, WING4_VENDOR_BLACKLIST, WING4_STAGE_AGNOSTIC_PATTERN, Issue, LintResult, _ROLE_CONTRACT_CANDIDATES, _ROLE_CONTRACT_SLUGS_CACHE, _ROLE_CONTRACT_REF_PATTERN, PROCEDURE_HEADING_PATTERN, COMMAND_FRONTMATTER_DELEGATION_KEYS, MD_LINK_PATTERN_G, NAME_PATTERN, DISABLE_MODEL_PATTERN, _INSPECT_VERB_PATTERN, last_changed_scope_reason, last_changed_base_diff_ok, _INTERACTION_NAME_PATTERNS, _INTERACTION_CONTENT_KEYWORDS, _EXEC_FILE_SIGNALS, _EXEC_CONTENT_SIGNALS, _TASK_TYPE_SIGNALS, _VERIFICATION_TOOLS, _FRUGALITY_STANDARDS_PATTERN, _FRUGALITY_CHARTER_LINK_PATTERN, _MD_LINK_PATTERN, _MALICE_CRED_EXFIL, _MALICE_REMOTE_EXEC, _MALICE_FORCE_PUSH, _MALICE_CHMOD_SECRETS, _MALICE_SHELL_INJECT, _MALICE_PATTERNS, _NAG_UPDATE_CHECK, _NAG_STAY_CURRENT, _NAG_SELF_PROMO, _NAG_BEST_SKILL, _NAG_MUST_USE, _NAG_ALWAYS_USE, _NAG_PATTERNS, _OUTPUT_SCHEMA_KEY_PATTERN, _SCHEMA_ARTEFACT_TYPES, ArgError, isCliEntry2;
|
|
18034
18052
|
var init_skill_linter = __esm({
|
|
18035
18053
|
"src/scripts/skill_linter.ts"() {
|
|
18036
18054
|
"use strict";
|
|
@@ -18171,6 +18189,17 @@ var init_skill_linter = __esm({
|
|
|
18171
18189
|
VALID_EXECUTION_SAFETY_MODES = /* @__PURE__ */ new Set(["strict"]);
|
|
18172
18190
|
EXTERNAL_EXECUTION_HANDLERS = /* @__PURE__ */ new Set(["shell", "php", "node"]);
|
|
18173
18191
|
RUNTIME_REQUIRES_BLOCK_PATTERN = /^runtime_requires:[ \t]*(\{.*)?$/m;
|
|
18192
|
+
COMPATIBILITY_KEY_PATTERN = /^compatibility:[ \t]*\S/m;
|
|
18193
|
+
HARNESS_COMPAT_KEY_PATTERN = /^harness_compat:[ \t]*\S/m;
|
|
18194
|
+
STRICT_WRITE_GATE_PATTERNS = [
|
|
18195
|
+
/--dry-run/i,
|
|
18196
|
+
/\bnever silent[- ]run/i,
|
|
18197
|
+
/\bpropose,? never\b/i,
|
|
18198
|
+
/\bconfirms? before\b/i,
|
|
18199
|
+
/\bexplicit (?:user )?confirmation\b/i,
|
|
18200
|
+
/\basks? (?:the user )?(?:first|before)\b/i
|
|
18201
|
+
];
|
|
18202
|
+
SKILL_REFERENCE_DEFERRAL_PATTERN = /\]\(\.{0,2}\/?references\//;
|
|
18174
18203
|
VALID_EXECUTION_FIELDS = /* @__PURE__ */ new Set([
|
|
18175
18204
|
"type",
|
|
18176
18205
|
"handler",
|
|
@@ -18880,7 +18909,10 @@ function parse_blockers(raw_text) {
|
|
|
18880
18909
|
owner: _blockerField(body, "Owner") ?? "user",
|
|
18881
18910
|
blocks: _blockerField(body, "Blocks") ?? "(unspecified)",
|
|
18882
18911
|
todo: _blockerTodo(body),
|
|
18883
|
-
resolvedWhen: _blockerField(body, "Resolved when") ?? "(unspecified)"
|
|
18912
|
+
resolvedWhen: _blockerField(body, "Resolved when") ?? "(unspecified)",
|
|
18913
|
+
recommendation: _blockerField(body, "Recommendation") ?? "",
|
|
18914
|
+
ifNothing: _blockerField(body, "If you do nothing") ?? "",
|
|
18915
|
+
question: _blockerField(body, "Question") ?? ""
|
|
18884
18916
|
});
|
|
18885
18917
|
}
|
|
18886
18918
|
}
|
|
@@ -18906,7 +18938,10 @@ function parse_blockers(raw_text) {
|
|
|
18906
18938
|
owner: "user",
|
|
18907
18939
|
blocks: "entire roadmap",
|
|
18908
18940
|
todo: [parts.join(" ")],
|
|
18909
|
-
resolvedWhen: "condition described above clears"
|
|
18941
|
+
resolvedWhen: "condition described above clears",
|
|
18942
|
+
recommendation: "",
|
|
18943
|
+
ifNothing: "",
|
|
18944
|
+
question: ""
|
|
18910
18945
|
});
|
|
18911
18946
|
}
|
|
18912
18947
|
return blockers;
|
|
@@ -19178,6 +19213,12 @@ function render(roadmaps, bundles = null) {
|
|
|
19178
19213
|
lines.push("**Blockers**\n");
|
|
19179
19214
|
for (const b of openBlockers) {
|
|
19180
19215
|
lines.push(`- **${b.id}** (owner: ${b.owner}) \u2014 blocks ${b.blocks}`);
|
|
19216
|
+
if (b.recommendation) {
|
|
19217
|
+
lines.push(` - **Recommendation:** ${b.recommendation}`);
|
|
19218
|
+
}
|
|
19219
|
+
if (b.ifNothing) {
|
|
19220
|
+
lines.push(` - **If you do nothing:** ${b.ifNothing}`);
|
|
19221
|
+
}
|
|
19181
19222
|
lines.push(" - **What to do:**");
|
|
19182
19223
|
for (const step of b.todo) {
|
|
19183
19224
|
lines.push(` ${step}`);
|
|
@@ -19506,7 +19547,7 @@ var init_update_roadmap_progress = __esm({
|
|
|
19506
19547
|
BLOCKER_HEADING_RE = /^###[ \t]+blocker:[ \t]*(.+?)[ \t]*$/gim;
|
|
19507
19548
|
NEXT_H2_RE = /^##[ \t]+\S/m;
|
|
19508
19549
|
LEGACY_BLOCKED_UNTIL_RE = /^>[ \t]*Blocked until:?[ \t]*(.+)$/im;
|
|
19509
|
-
BLOCKER_FIELD_RE = /^-[ \t]*\*\*(Status|Owner|Blocks|Resolved when|What to do):\*\*/i;
|
|
19550
|
+
BLOCKER_FIELD_RE = /^-[ \t]*\*\*(Status|Owner|Blocks|Resolved when|What to do|Recommendation|If you do nothing|Question):\*\*/i;
|
|
19510
19551
|
ArgparseExit = class extends Error {
|
|
19511
19552
|
code;
|
|
19512
19553
|
constructor(code) {
|
|
@@ -25763,6 +25804,7 @@ __export(clients_exports, {
|
|
|
25763
25804
|
AnthropicCliClient: () => AnthropicCliClient,
|
|
25764
25805
|
AnthropicClient: () => AnthropicClient,
|
|
25765
25806
|
CLI_CALLS_FILENAME: () => CLI_CALLS_FILENAME,
|
|
25807
|
+
CODEX_MEASURED_UNSERVABLE: () => CODEX_MEASURED_UNSERVABLE,
|
|
25766
25808
|
CliClient: () => CliClient,
|
|
25767
25809
|
CliClientError: () => CliClientError,
|
|
25768
25810
|
CouncilResponse: () => CouncilResponse,
|
|
@@ -25784,6 +25826,7 @@ __export(clients_exports, {
|
|
|
25784
25826
|
KeyGateError: () => KeyGateError,
|
|
25785
25827
|
MANUAL_END_MARKER: () => MANUAL_END_MARKER,
|
|
25786
25828
|
ManualClient: () => ManualClient,
|
|
25829
|
+
OPENAI_CLI_VENDOR_DEFAULT: () => OPENAI_CLI_VENDOR_DEFAULT,
|
|
25787
25830
|
OPENAI_KEY_FILENAME: () => OPENAI_KEY_FILENAME,
|
|
25788
25831
|
OPENAI_KEY_PATH: () => OPENAI_KEY_PATH,
|
|
25789
25832
|
OpenAICliClient: () => OpenAICliClient,
|
|
@@ -26406,7 +26449,7 @@ function _defaultStdin() {
|
|
|
26406
26449
|
}
|
|
26407
26450
|
};
|
|
26408
26451
|
}
|
|
26409
|
-
var _modelCeilingMemo, ANTHROPIC_KEY_FILENAME, OPENAI_KEY_FILENAME, ANTHROPIC_KEY_PATH, OPENAI_KEY_PATH, DEFAULT_ANTHROPIC_MODEL, DEFAULT_OPENAI_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_XAI_MODEL, DEFAULT_PERPLEXITY_MODEL, DEFAULT_OPENAI_CLI_MODEL, DEFAULT_ANTHROPIC_CLI_MODEL, DEFAULT_GEMINI_CLI_MODEL, XAI_BASE_URL, PERPLEXITY_BASE_URL, DEFAULT_MAX_TOKENS, UNLIMITED_TOKENS_FALLBACK, _REASONING_PREFIXES, KeyGateError, CliClientError, DEFAULT_PROMPT_CACHE_TTL, CouncilResponse, _monotonicSource, ExternalAIClient, AnthropicClient, OpenAIClient, GeminiClient, _OpenAICompatibleClient, XAIClient, PerplexityClient, CLI_CALLS_FILENAME, DEFAULT_CLI_TIMEOUT_SECONDS, SubprocessError, CliClient, AnthropicCliClient, OpenAICliClient, GeminiCliClient, XAICliClient, PerplexityCliClient, MANUAL_END_MARKER, ManualClient, ValueError3, JSONDecodeError;
|
|
26452
|
+
var _modelCeilingMemo, ANTHROPIC_KEY_FILENAME, OPENAI_KEY_FILENAME, ANTHROPIC_KEY_PATH, OPENAI_KEY_PATH, DEFAULT_ANTHROPIC_MODEL, DEFAULT_OPENAI_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_XAI_MODEL, DEFAULT_PERPLEXITY_MODEL, OPENAI_CLI_VENDOR_DEFAULT, CODEX_MEASURED_UNSERVABLE, DEFAULT_OPENAI_CLI_MODEL, DEFAULT_ANTHROPIC_CLI_MODEL, DEFAULT_GEMINI_CLI_MODEL, XAI_BASE_URL, PERPLEXITY_BASE_URL, DEFAULT_MAX_TOKENS, UNLIMITED_TOKENS_FALLBACK, _REASONING_PREFIXES, KeyGateError, CliClientError, DEFAULT_PROMPT_CACHE_TTL, CouncilResponse, _monotonicSource, ExternalAIClient, AnthropicClient, OpenAIClient, GeminiClient, _OpenAICompatibleClient, XAIClient, PerplexityClient, CLI_CALLS_FILENAME, DEFAULT_CLI_TIMEOUT_SECONDS, SubprocessError, CliClient, AnthropicCliClient, OpenAICliClient, GeminiCliClient, XAICliClient, PerplexityCliClient, MANUAL_END_MARKER, ManualClient, ValueError3, JSONDecodeError;
|
|
26410
26453
|
var init_clients = __esm({
|
|
26411
26454
|
"src/scripts/ai_council/clients.ts"() {
|
|
26412
26455
|
"use strict";
|
|
@@ -26425,7 +26468,13 @@ var init_clients = __esm({
|
|
|
26425
26468
|
DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
|
|
26426
26469
|
DEFAULT_XAI_MODEL = "grok-4";
|
|
26427
26470
|
DEFAULT_PERPLEXITY_MODEL = "sonar-pro";
|
|
26428
|
-
|
|
26471
|
+
OPENAI_CLI_VENDOR_DEFAULT = "codex-default";
|
|
26472
|
+
CODEX_MEASURED_UNSERVABLE = /* @__PURE__ */ new Map([
|
|
26473
|
+
["gpt-4o", "2026-08-15"],
|
|
26474
|
+
["gpt-5", "2026-08-15"],
|
|
26475
|
+
["gpt-5.1-codex", "2026-08-15"]
|
|
26476
|
+
]);
|
|
26477
|
+
DEFAULT_OPENAI_CLI_MODEL = OPENAI_CLI_VENDOR_DEFAULT;
|
|
26429
26478
|
DEFAULT_ANTHROPIC_CLI_MODEL = "claude-sonnet-4-5";
|
|
26430
26479
|
DEFAULT_GEMINI_CLI_MODEL = "gemini-2.5-pro";
|
|
26431
26480
|
XAI_BASE_URL = "https://api.x.ai/v1";
|
|
@@ -26648,7 +26697,7 @@ var init_clients = __esm({
|
|
|
26648
26697
|
_client;
|
|
26649
26698
|
constructor(opts = {}) {
|
|
26650
26699
|
super();
|
|
26651
|
-
this.model = opts.model
|
|
26700
|
+
this.model = opts.model === void 0 || opts.model === OPENAI_CLI_VENDOR_DEFAULT ? DEFAULT_OPENAI_MODEL : opts.model;
|
|
26652
26701
|
if (opts.client !== void 0 && opts.client !== null) {
|
|
26653
26702
|
this._client = opts.client;
|
|
26654
26703
|
return;
|
|
@@ -26968,6 +27017,19 @@ ${user_prompt}`;
|
|
|
26968
27017
|
} catch {
|
|
26969
27018
|
}
|
|
26970
27019
|
}
|
|
27020
|
+
/**
|
|
27021
|
+
* Refuse a call this transport cannot serve, BEFORE spawning.
|
|
27022
|
+
*
|
|
27023
|
+
* `null` means "nothing known to be wrong" — deliberately not "verified
|
|
27024
|
+
* servable". No vendor CLI here publishes the set of models its
|
|
27025
|
+
* subscription tier accepts, so an allow-list would be invented and would
|
|
27026
|
+
* reject valid pins the day the vendor adds one. What CAN be stated is the
|
|
27027
|
+
* complement: models this estate has MEASURED being rejected. Subclasses
|
|
27028
|
+
* override; the base transport knows of none.
|
|
27029
|
+
*/
|
|
27030
|
+
_preflight_transport() {
|
|
27031
|
+
return null;
|
|
27032
|
+
}
|
|
26971
27033
|
/** Return text to send on stdin, or `null` to inherit caller's stdin. */
|
|
26972
27034
|
_stdin_payload(system_prompt, user_prompt) {
|
|
26973
27035
|
void system_prompt;
|
|
@@ -27094,6 +27156,17 @@ ${user_prompt}`;
|
|
|
27094
27156
|
});
|
|
27095
27157
|
}
|
|
27096
27158
|
}
|
|
27159
|
+
const preflight = this._preflight_transport();
|
|
27160
|
+
if (preflight !== null) {
|
|
27161
|
+
return new CouncilResponse({
|
|
27162
|
+
provider: this.name,
|
|
27163
|
+
model: this.model,
|
|
27164
|
+
text: "",
|
|
27165
|
+
latency_ms: _elapsedMs(t0),
|
|
27166
|
+
error: preflight.code,
|
|
27167
|
+
metadata: { cli: true, transport: this.transport, detail: preflight.detail }
|
|
27168
|
+
});
|
|
27169
|
+
}
|
|
27097
27170
|
const cmd = this._build_command(system_prompt, user_prompt, max_tokens);
|
|
27098
27171
|
const stdinPayload = this._stdin_payload(system_prompt, user_prompt);
|
|
27099
27172
|
let proc;
|
|
@@ -27325,7 +27398,23 @@ ${user_prompt}`;
|
|
|
27325
27398
|
void system_prompt;
|
|
27326
27399
|
void user_prompt;
|
|
27327
27400
|
void max_tokens;
|
|
27328
|
-
|
|
27401
|
+
const modelArgs = this.model === OPENAI_CLI_VENDOR_DEFAULT ? [] : ["--model", this.model];
|
|
27402
|
+
return [this.binary, "exec", "--json", "--skip-git-repo-check", ...modelArgs, "-"];
|
|
27403
|
+
}
|
|
27404
|
+
/**
|
|
27405
|
+
* Refuse a pin this estate has measured the transport rejecting.
|
|
27406
|
+
*
|
|
27407
|
+
* The remedy is named because it is not guessable: removing the `model:`
|
|
27408
|
+
* line is the fix, and "remove a setting" is the last thing an operator
|
|
27409
|
+
* tries when a member is silent.
|
|
27410
|
+
*/
|
|
27411
|
+
_preflight_transport() {
|
|
27412
|
+
const measuredOn = CODEX_MEASURED_UNSERVABLE.get(this.model);
|
|
27413
|
+
if (measuredOn === void 0) return null;
|
|
27414
|
+
return {
|
|
27415
|
+
code: "model_unsupported_on_transport",
|
|
27416
|
+
detail: `openai member pins model \`${this.model}\`, which the codex CLI (subscription transport) refused when measured on ${measuredOn}: "The '${this.model}' model is not supported when using Codex with a ChatGPT account." The CLI publishes no list of models it DOES accept, so there is no supported set to offer here \u2014 the one configuration measured to work is no pin at all. Fix: remove the \`model:\` line from the openai member (or set it to \`codex-default\`) to use the CLI's own default. A pinned model is only reachable on the API transport (\`api_key_ref:\` without \`mode: cli\`).`
|
|
27417
|
+
};
|
|
27329
27418
|
}
|
|
27330
27419
|
/**
|
|
27331
27420
|
* System and user prompt travel as ONE stdin payload, because `codex exec`
|
|
@@ -27347,6 +27436,7 @@ ${user_prompt}`;
|
|
|
27347
27436
|
let text = "";
|
|
27348
27437
|
let input_tokens = 0;
|
|
27349
27438
|
let output_tokens = 0;
|
|
27439
|
+
let failure = null;
|
|
27350
27440
|
const meta = {};
|
|
27351
27441
|
for (let line of _splitlines6(stdout)) {
|
|
27352
27442
|
line = line.trim();
|
|
@@ -27389,6 +27479,12 @@ ${user_prompt}`;
|
|
|
27389
27479
|
text = chunks.join("\n").trim();
|
|
27390
27480
|
}
|
|
27391
27481
|
}
|
|
27482
|
+
if (_dictGet(itemObj, "type", void 0) === "agent_message") {
|
|
27483
|
+
const flat = _pyStr3(_dictGet(itemObj, "text", "")).trim();
|
|
27484
|
+
if (flat) {
|
|
27485
|
+
text = flat;
|
|
27486
|
+
}
|
|
27487
|
+
}
|
|
27392
27488
|
if (_pyTruthy2(_dictGet(itemObj, "id", void 0))) {
|
|
27393
27489
|
meta["item_id"] = _pyStr3(itemObj["id"]);
|
|
27394
27490
|
}
|
|
@@ -27407,8 +27503,36 @@ ${user_prompt}`;
|
|
|
27407
27503
|
if (_pyTruthy2(_dictGet(ev, "session_id", void 0))) {
|
|
27408
27504
|
meta["session_id"] = _pyStr3(ev["session_id"]);
|
|
27409
27505
|
}
|
|
27506
|
+
} else if (event_type === "turn.failed") {
|
|
27507
|
+
let err = _dictGet(ev, "error", null);
|
|
27508
|
+
if (!_pyTruthy2(err)) err = {};
|
|
27509
|
+
if (_isPlainObject7(err)) {
|
|
27510
|
+
const raw = _pyStr3(_dictGet(err, "message", ""));
|
|
27511
|
+
if (raw) failure = raw;
|
|
27512
|
+
}
|
|
27410
27513
|
}
|
|
27411
27514
|
}
|
|
27515
|
+
if (failure !== null && !text) {
|
|
27516
|
+
const unsupported = /not supported when using Codex/i.test(failure);
|
|
27517
|
+
return new CouncilResponse({
|
|
27518
|
+
provider: this.name,
|
|
27519
|
+
model: this.model,
|
|
27520
|
+
text: "",
|
|
27521
|
+
input_tokens,
|
|
27522
|
+
output_tokens,
|
|
27523
|
+
error: unsupported ? "model_unsupported_on_transport" : "turn_failed",
|
|
27524
|
+
metadata: {
|
|
27525
|
+
...meta,
|
|
27526
|
+
// The vendor's own sentence, kept because it names the
|
|
27527
|
+
// model and the account type — the two facts an operator
|
|
27528
|
+
// needs and neither of which the error code carries.
|
|
27529
|
+
detail: failure.slice(0, 400),
|
|
27530
|
+
...unsupported ? {
|
|
27531
|
+
hint: "the codex subscription transport serves no explicitly pinned model measured so far \u2014 remove the `model:` line from the openai member to use the CLI default"
|
|
27532
|
+
} : {}
|
|
27533
|
+
}
|
|
27534
|
+
});
|
|
27535
|
+
}
|
|
27412
27536
|
return new CouncilResponse({
|
|
27413
27537
|
provider: this.name,
|
|
27414
27538
|
model: this.model,
|
|
@@ -28799,7 +28923,7 @@ function _build_member(name, cfg, default_mode = "auto", ignored = []) {
|
|
|
28799
28923
|
}
|
|
28800
28924
|
entries.push(entry);
|
|
28801
28925
|
}
|
|
28802
|
-
if (member_enabled && model && !entries.includes(model)) {
|
|
28926
|
+
if (member_enabled && model && model !== OPENAI_CLI_VENDOR_DEFAULT && !entries.includes(model)) {
|
|
28803
28927
|
throw new CouncilConfigError(
|
|
28804
28928
|
`members.${name}.model_ladder must include the active \`model\` (${_pyReprStr(model)}); got ${_pyRepr6(entries)}.`
|
|
28805
28929
|
);
|
|
@@ -29037,6 +29161,7 @@ var init_config = __esm({
|
|
|
29037
29161
|
"use strict";
|
|
29038
29162
|
import_yaml5 = __toESM(require_dist(), 1);
|
|
29039
29163
|
init_user_global_paths();
|
|
29164
|
+
init_clients();
|
|
29040
29165
|
init_quorum();
|
|
29041
29166
|
_VALID_PROVIDERS = /* @__PURE__ */ new Set([
|
|
29042
29167
|
"anthropic",
|
|
@@ -29687,6 +29812,9 @@ function classifyCliFailure(raw) {
|
|
|
29687
29812
|
if (s === "cli_unsupported" || s === "unsupported" || s === "parse_failed") {
|
|
29688
29813
|
return "cli_unsupported";
|
|
29689
29814
|
}
|
|
29815
|
+
if (s.startsWith("model_unservable") || s.includes("is not supported when using codex")) {
|
|
29816
|
+
return "model_unservable";
|
|
29817
|
+
}
|
|
29690
29818
|
if (s === "timeout") return "timeout";
|
|
29691
29819
|
if (s === "cli_quota_exhausted" || s === "quota_exhausted") return "quota_exhausted";
|
|
29692
29820
|
if (/^exit_5\d\d$/.test(s) || s === "server_error" || s === "os") return "server_error";
|
|
@@ -35377,6 +35505,13 @@ function handleStart(root, payload, nowIso, sessionId) {
|
|
|
35377
35505
|
event: "subagent_start",
|
|
35378
35506
|
ts: nowIso,
|
|
35379
35507
|
ref,
|
|
35508
|
+
// Phase 1 Step 4 correction (b): without this the dispatch denominator
|
|
35509
|
+
// is not per-session. Three sessions share one ledger file, so a rate
|
|
35510
|
+
// computed over the file aggregates strangers — the measured window
|
|
35511
|
+
// held 7 starts against 25 stops, one of them an agent type this
|
|
35512
|
+
// session never dispatched. The open record already carried it; the
|
|
35513
|
+
// appended line did not, and the line is what a rate is computed from.
|
|
35514
|
+
session_id: sessionId,
|
|
35380
35515
|
agent_type: rec.agent_type,
|
|
35381
35516
|
parent_ref: parentRef,
|
|
35382
35517
|
depth,
|
|
@@ -35384,7 +35519,7 @@ function handleStart(root, payload, nowIso, sessionId) {
|
|
|
35384
35519
|
concurrent_open: countOpen(root)
|
|
35385
35520
|
});
|
|
35386
35521
|
}
|
|
35387
|
-
function handleStop(root, payload, nowIso) {
|
|
35522
|
+
function handleStop(root, payload, nowIso, sessionId) {
|
|
35388
35523
|
const agentId = str2(payload, "agent_id", "agentId");
|
|
35389
35524
|
if (agentId === null) {
|
|
35390
35525
|
appendUnidentified(root, "subagent_stop", nowIso, payload);
|
|
@@ -35403,6 +35538,11 @@ function handleStop(root, payload, nowIso) {
|
|
|
35403
35538
|
event: "subagent_stop",
|
|
35404
35539
|
ts: nowIso,
|
|
35405
35540
|
ref,
|
|
35541
|
+
// The session this stop was OBSERVED in, read from the same envelope
|
|
35542
|
+
// position as the start's — never back-filled from `rec`, which would
|
|
35543
|
+
// relabel a cross-session stop as belonging to the dispatching session
|
|
35544
|
+
// and hide exactly the mismatch this field exists to expose.
|
|
35545
|
+
session_id: sessionId,
|
|
35406
35546
|
agent_type: rec?.agent_type ?? str2(payload, "agent_type", "agentType", "subagent_type", "subagentType"),
|
|
35407
35547
|
depth: rec?.depth ?? null,
|
|
35408
35548
|
depth_basis: rec?.depth_basis ?? null,
|
|
@@ -35428,7 +35568,7 @@ function processEnvelope(envelope, consumerRoot) {
|
|
|
35428
35568
|
const sessionId = str2(payload, "session_id", "sessionId") ?? str2(envelope, "session_id", "sessionId");
|
|
35429
35569
|
reapStaleOpenRecords(consumerRoot, nowIso);
|
|
35430
35570
|
if (event === "subagent_start") handleStart(consumerRoot, payload, nowIso, sessionId);
|
|
35431
|
-
else handleStop(consumerRoot, payload, nowIso);
|
|
35571
|
+
else handleStop(consumerRoot, payload, nowIso, sessionId);
|
|
35432
35572
|
} catch {
|
|
35433
35573
|
return EXIT_ALLOW4;
|
|
35434
35574
|
}
|
|
@@ -44312,7 +44452,8 @@ ${body}`);
|
|
|
44312
44452
|
function _render_quorum_line(q) {
|
|
44313
44453
|
const verdict = q.status === "concluded" ? "concluded" : "INCONCLUSIVE \u2014 release gate holds";
|
|
44314
44454
|
const solo = isSoloConcluded(q) ? " \xB7 **solo** \u2014 one voice concluded this pass" : "";
|
|
44315
|
-
|
|
44455
|
+
const degraded = q.present < q.total ? ` \u26A0\uFE0F DEGRADED \u2014 ${String(q.total - q.present)} member(s) did not answer; this is not convergence.` : "";
|
|
44456
|
+
return `**Quorum:** ${q.present}/${q.total} present, needed ${q.threshold} \u2014 ${verdict}.${solo}${degraded}`;
|
|
44316
44457
|
}
|
|
44317
44458
|
function _render_absent_members(absent) {
|
|
44318
44459
|
const lines = ["### Absent Members", ""];
|
|
@@ -45673,7 +45814,9 @@ function resolve_low_impact(question_text, plan, clients, price_table = null, no
|
|
|
45673
45814
|
const pinned = model_downgrade.model_tier_override?.[member.name];
|
|
45674
45815
|
const cheapest = member.model_ladder.length > 0 ? member.model_ladder[0] : null;
|
|
45675
45816
|
const target = pinned && pinned.length > 0 ? pinned : cheapest;
|
|
45676
|
-
|
|
45817
|
+
const unpinned = client.model === OPENAI_CLI_VENDOR_DEFAULT;
|
|
45818
|
+
const overrideWins = pinned !== void 0 && pinned.length > 0;
|
|
45819
|
+
if (target && target !== client.model && (!unpinned || overrideWins)) {
|
|
45677
45820
|
client.model = target;
|
|
45678
45821
|
}
|
|
45679
45822
|
}
|
|
@@ -45979,6 +46122,7 @@ var init_low_impact = __esm({
|
|
|
45979
46122
|
"src/scripts/ai_council/low_impact.ts"() {
|
|
45980
46123
|
"use strict";
|
|
45981
46124
|
init_value_ladder();
|
|
46125
|
+
init_clients();
|
|
45982
46126
|
init_orchestrator();
|
|
45983
46127
|
_INPUT_RATIO = 0.6;
|
|
45984
46128
|
FastPathPlan = class {
|