codymaster 7.0.1 → 7.0.3
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/CHANGELOG.md +64 -0
- package/README.md +117 -2
- package/dist/agent/codex.js +73 -21
- package/dist/agent-dispatch.js +63 -48
- package/dist/cli/commands/brain.js +18 -0
- package/dist/cli/commands/design-studio.js +1 -1
- package/dist/cm-suggest.js +3 -3
- package/dist/dashboard-project-summary.js +9 -0
- package/dist/dashboard.js +11 -5
- package/dist/execution-analyzer.js +9 -1
- package/dist/judge.js +16 -15
- package/dist/mcp-context-server.js +45 -23
- package/dist/mcp-skills-tools.js +2 -2
- package/dist/skill-chain.js +26 -3
- package/dist/skill-token-report.js +105 -0
- package/dist/sprint-pipeline.js +3 -3
- package/dist/ui/onboarding.js +3 -4
- package/dist/utils/design-taste.js +1 -1
- package/dist/utils/output-compress.js +8 -0
- package/package.json +3 -2
- package/public/dashboard/app.js +40 -13
- package/public/dashboard/index.html +190 -5
- package/public/dashboard/style.css +1 -1
- package/scripts/build-skills.mjs +36 -2
- package/scripts/mcp-bridge.js +41 -24
- package/scripts/pack-plugin.mjs +206 -0
- package/skills/cm-ads-tracker/SKILL.md +401 -0
- package/skills/cm-ads-tracker/evals/evals.json +55 -0
- package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
- package/skills/cm-ads-tracker/references/industry-events.md +294 -0
- package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
- package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
- package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
- package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
- package/skills/cm-auto-publisher/SKILL.md +81 -0
- package/skills/cm-booking-calendar/SKILL.md +521 -0
- package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
- package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
- package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
- package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
- package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
- package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
- package/skills/cm-brainstorm-idea/SKILL.md +5 -5
- package/skills/cm-code-review/SKILL.md +2 -2
- package/skills/cm-codeintell/SKILL.md +47 -580
- package/skills/cm-codeintell/references/integration-workflows.md +23 -0
- package/skills/cm-codeintell/references/layer-0-skeleton.md +54 -0
- package/skills/cm-codeintell/references/layer-1-codegraph.md +58 -0
- package/skills/cm-codeintell/references/layer-2-architecture.md +31 -0
- package/skills/cm-codeintell/references/layer-3-context-builder.md +32 -0
- package/skills/cm-content-factory/.content-factory-state.json +132 -0
- package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/cm-content-factory/AGENTS.md +61 -0
- package/skills/cm-content-factory/CLAUDE.md +63 -0
- package/skills/cm-content-factory/CURSOR.md +43 -0
- package/skills/cm-content-factory/Content Factory.zip +0 -0
- package/skills/cm-content-factory/SKILL.md +416 -0
- package/skills/cm-content-factory/cf +313 -0
- package/skills/cm-content-factory/config.schema.json +397 -0
- package/skills/cm-content-factory/dashboard/app.js +556 -0
- package/skills/cm-content-factory/dashboard/index.html +397 -0
- package/skills/cm-content-factory/dashboard/style.css +1211 -0
- package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
- package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
- package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
- package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
- package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
- package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
- package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
- package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
- package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
- package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
- package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
- package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
- package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
- package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
- package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
- package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
- package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
- package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
- package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
- package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
- package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
- package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
- package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
- package/skills/cm-content-factory/extensions/hooks.py +126 -0
- package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
- package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
- package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
- package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
- package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
- package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
- package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
- package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
- package/skills/cm-content-factory/landing/docs/index.html +240 -0
- package/skills/cm-content-factory/landing/index.html +680 -0
- package/skills/cm-content-factory/landing/script.js +143 -0
- package/skills/cm-content-factory/landing/style.css +1216 -0
- package/skills/cm-content-factory/landing/translations.js +508 -0
- package/skills/cm-content-factory/logs/events.jsonl +11 -0
- package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
- package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
- package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
- package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
- package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
- package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
- package/skills/cm-content-factory/scripts/audit.py +106 -0
- package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
- package/skills/cm-content-factory/scripts/deploy.py +146 -0
- package/skills/cm-content-factory/scripts/extract.py +132 -0
- package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
- package/skills/cm-content-factory/scripts/memory.py +521 -0
- package/skills/cm-content-factory/scripts/monetize.py +239 -0
- package/skills/cm-content-factory/scripts/pipeline.py +357 -0
- package/skills/cm-content-factory/scripts/plan.py +163 -0
- package/skills/cm-content-factory/scripts/publish.py +145 -0
- package/skills/cm-content-factory/scripts/research.py +337 -0
- package/skills/cm-content-factory/scripts/scaffold.py +464 -0
- package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
- package/skills/cm-content-factory/scripts/seo.py +90 -0
- package/skills/cm-content-factory/scripts/state_manager.py +320 -0
- package/skills/cm-content-factory/scripts/token_manager.py +268 -0
- package/skills/cm-content-factory/scripts/validate.py +221 -0
- package/skills/cm-content-factory/scripts/wizard.py +329 -0
- package/skills/cm-content-factory/scripts/write.py +93 -0
- package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
- package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
- package/skills/cm-content-factory/tests/conftest.py +66 -0
- package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
- package/skills/cm-content-factory/tests/test_memory.py +128 -0
- package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
- package/skills/cm-content-factory/tests/test_research.py +56 -0
- package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
- package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
- package/skills/cm-content-factory/tests/test_wizard.py +121 -0
- package/skills/cm-continuity/SKILL.md +49 -480
- package/skills/cm-continuity/references/cm-uri-scheme.md +23 -0
- package/skills/cm-continuity/references/continuity-template.md +48 -0
- package/skills/cm-continuity/references/mcp-context-server.md +27 -0
- package/skills/cm-continuity/references/memory-architecture.md +26 -0
- package/skills/cm-continuity/references/memory-audit.md +18 -0
- package/skills/cm-continuity/references/session-protocol.md +31 -0
- package/skills/cm-continuity/references/storage-formats.md +20 -0
- package/skills/cm-cro-methodology/SKILL.md +290 -0
- package/skills/cm-cro-methodology/references/COPYWRITING.md +178 -0
- package/skills/cm-cro-methodology/references/OBJECTIONS.md +135 -0
- package/skills/cm-cro-methodology/references/PERSUASION.md +158 -0
- package/skills/cm-cro-methodology/references/RESEARCH.md +220 -0
- package/skills/cm-cro-methodology/references/funnel-analysis.md +365 -0
- package/skills/cm-cro-methodology/references/testing-methodology.md +330 -0
- package/skills/cm-design-system/SKILL.md +5 -6
- package/skills/cm-execution/SKILL.md +61 -379
- package/skills/cm-execution/references/mode-a-batch.md +28 -0
- package/skills/cm-execution/references/mode-b-subagent.md +46 -0
- package/skills/cm-execution/references/mode-c-parallel.md +39 -0
- package/skills/cm-execution/references/mode-d-rarv.md +62 -0
- package/skills/cm-execution/references/mode-e-triz-parallel.md +53 -0
- package/skills/cm-execution/references/mode-f-party.md +61 -0
- package/skills/cm-execution/references/persona-dispatch.md +22 -0
- package/skills/cm-execution/references/security-rules.md +47 -0
- package/skills/cm-google-form/SKILL.md +266 -0
- package/skills/cm-google-form/templates/apps-script.js +55 -0
- package/skills/cm-google-form/templates/form-markup.html +110 -0
- package/skills/cm-google-form/templates/form-submit.js +201 -0
- package/skills/cm-google-form/templates/toast.css +152 -0
- package/skills/cm-growth-hacking/SKILL.md +282 -0
- package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
- package/skills/cm-growth-hacking/calendar-integration.md +264 -0
- package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
- package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
- package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
- package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
- package/skills/cm-growth-hacking/tracking-events.md +246 -0
- package/skills/cm-growth-hacking/trigger-system.md +342 -0
- package/skills/cm-how-it-work/SKILL.md +8 -9
- package/skills/cm-identity-guard/SKILL.md +4 -4
- package/skills/cm-jtbd/SKILL.md +98 -0
- package/skills/cm-notebooklm/SKILL.md +156 -0
- package/skills/cm-notebooklm/references/command_reference.md +94 -0
- package/skills/cm-notebooklm/references/workflows.md +60 -0
- package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
- package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
- package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
- package/skills/cm-planning/SKILL.md +3 -3
- package/skills/cm-project-bootstrap/SKILL.md +2 -2
- package/skills/cm-quality-gate/SKILL.md +1 -1
- package/skills/cm-readit/SKILL.md +289 -0
- package/skills/cm-readit/audio-player.md +206 -0
- package/skills/cm-readit/examples/blog-reader.js +352 -0
- package/skills/cm-readit/examples/voice-cro.js +390 -0
- package/skills/cm-readit/tts-engine.md +262 -0
- package/skills/cm-readit/ui-patterns.md +362 -0
- package/skills/cm-readit/voice-cro.md +223 -0
- package/skills/cm-safe-deploy/SKILL.md +80 -510
- package/skills/cm-safe-deploy/references/gate-0-5-security-scan.md +31 -0
- package/skills/cm-safe-deploy/references/gate-0-secret-hygiene.md +68 -0
- package/skills/cm-safe-deploy/references/gate-1-syntax.md +23 -0
- package/skills/cm-safe-deploy/references/gate-2-test-suite.md +28 -0
- package/skills/cm-safe-deploy/references/gate-3-i18n.md +19 -0
- package/skills/cm-safe-deploy/references/gate-4-5-build-dist.md +16 -0
- package/skills/cm-safe-deploy/references/gate-6-deploy-smoke.md +18 -0
- package/skills/cm-safe-deploy/references/rollback.md +17 -0
- package/skills/cm-safe-deploy/references/setup-new-project.md +20 -0
- package/skills/cm-skill-index/SKILL.md +15 -15
- package/skills/cm-start/SKILL.md +1 -1
- package/skills/cm-tdd/SKILL.md +51 -356
- package/skills/cm-tdd/references/bugfix-example.md +15 -0
- package/skills/cm-tdd/references/rationalizations.md +20 -0
- package/skills/cm-tdd/references/red-green-refactor.md +33 -0
- package/skills/cm-tdd/references/stuck-debugging.md +18 -0
- package/skills/cm-tdd/references/test-quality.md +19 -0
- package/skills/cm-ux-master/SKILL.md +368 -115
- package/skills/profiles/core.txt +1 -4
- package/skills/profiles/design.txt +1 -2
- package/skills/profiles/full.txt +10 -16
- package/skills/profiles/growth.txt +9 -9
- package/skills/profiles/top35.json +13 -13
- package/skills/cm-conductor-worktrees/SKILL.archive.md +0 -28
- package/skills/cm-conductor-worktrees/SKILL.md +0 -26
- package/skills/cm-dashboard/SKILL.archive.md +0 -15
- package/skills/cm-dashboard/SKILL.md +0 -26
- package/skills/cm-dashboard/ui/app.js +0 -1278
- package/skills/cm-dashboard/ui/index.html +0 -206
- package/skills/cm-dashboard/ui/style.css +0 -440
- package/skills/cm-design-studio/SKILL.archive.md +0 -34
- package/skills/cm-design-studio/SKILL.md +0 -26
- package/skills/cm-engineering-meta/SKILL.archive.md +0 -73
- package/skills/cm-engineering-meta/SKILL.md +0 -26
- package/skills/cm-git-worktrees/SKILL.archive.md +0 -157
- package/skills/cm-git-worktrees/SKILL.md +0 -26
- package/skills/cm-post-deploy-canary/SKILL.archive.md +0 -22
- package/skills/cm-post-deploy-canary/SKILL.md +0 -26
- package/skills/cm-qa-visual-cli/SKILL.archive.md +0 -22
- package/skills/cm-qa-visual-cli/SKILL.md +0 -26
- package/skills/cm-second-opinion-cli/SKILL.archive.md +0 -23
- package/skills/cm-second-opinion-cli/SKILL.md +0 -26
- package/skills/cm-secret-shield/SKILL.archive.md +0 -580
- package/skills/cm-secret-shield/SKILL.md +0 -26
- package/skills/cm-security-gate/SKILL.archive.md +0 -239
- package/skills/cm-security-gate/SKILL.md +0 -26
- package/skills/cm-skill-health/SKILL.archive.md +0 -83
- package/skills/cm-skill-health/SKILL.md +0 -26
- package/skills/cm-skill-mastery/SKILL.archive.md +0 -156
- package/skills/cm-skill-mastery/SKILL.md +0 -26
- package/skills/cm-skill-search/SKILL.archive.md +0 -49
- package/skills/cm-skill-search/SKILL.md +0 -26
- package/skills/cm-skill-share/SKILL.archive.md +0 -58
- package/skills/cm-skill-share/SKILL.md +0 -26
- package/skills/cm-test-gate/SKILL.archive.md +0 -245
- package/skills/cm-test-gate/SKILL.md +0 -26
- package/skills/cm-ui-preview/SKILL.archive.md +0 -153
- package/skills/cm-ui-preview/SKILL.md +0 -26
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,70 @@ Categories: 🚀 **Improvements** | 🐛 **Bug Fixes** | 🔒 **Security**
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [7.0.3] - 2026-05-13
|
|
10
|
+
|
|
11
|
+
### 🚀 Improvements — Codex Runtime + Token-Efficient Handoffs
|
|
12
|
+
|
|
13
|
+
Focused compatibility and cleanup release. Align CodyMaster with the current Codex CLI, reduce agent handoff noise, and remove dead references to deprecated skills across docs, profiles, and runtime hints.
|
|
14
|
+
|
|
15
|
+
### 🚀 Improvements — Skill Token Auditing + Progressive Disclosure
|
|
16
|
+
|
|
17
|
+
Added first-class skill token footprint auditing and used it to refactor the heaviest always-on skills into lazy-loaded `references/` packs.
|
|
18
|
+
|
|
19
|
+
**Skill Token Auditing:**
|
|
20
|
+
- Added `cm token skill <skillName>` under the existing `cm token` namespace
|
|
21
|
+
- New `--project`, `--json`, and `--baseline` options for repo-scoped reports, machine-readable output, and before/after comparisons
|
|
22
|
+
- New `src/skill-token-report.ts` analyzer for `SKILL.md`, direct `references/`, `progressive_min`, `progressive_max`, and baseline deltas
|
|
23
|
+
- Added `test/skill-token-report.test.ts` and `test/brain-token-skill.test.ts`
|
|
24
|
+
|
|
25
|
+
**Progressive Disclosure Refactors:**
|
|
26
|
+
- Split `skills/cm-execution/` into a short router `SKILL.md` plus mode-specific references
|
|
27
|
+
- Split `skills/cm-codeintell/` by intelligence layer: skeleton, codegraph, architecture, context builder, integration workflows
|
|
28
|
+
- Split `skills/cm-safe-deploy/` by deploy path: individual gates, setup, and rollback
|
|
29
|
+
- Split `skills/cm-continuity/` by concern: session protocol, template, memory model, MCP bridge, URI scheme, storage, audit
|
|
30
|
+
- Split `skills/cm-tdd/` by workflow/support: red-green-refactor, test quality, rationalizations, bugfix example, stuck/debugging
|
|
31
|
+
- Preserved existing skill names, compressed frontmatter style, and distribution compatibility with flat `references/`
|
|
32
|
+
|
|
33
|
+
**Measured Token Wins (`progressive_min`):**
|
|
34
|
+
- `cm-execution`: `3990 → 963` tokens
|
|
35
|
+
- `cm-codeintell`: `4981 → 685` tokens
|
|
36
|
+
- `cm-safe-deploy`: `4268 → 780` tokens
|
|
37
|
+
- `cm-continuity`: `4157 → 652` tokens
|
|
38
|
+
- `cm-tdd`: `2953 → 554` tokens
|
|
39
|
+
|
|
40
|
+
**Codex Compatibility:**
|
|
41
|
+
- Updated `src/agent/codex.ts` to use `codex exec --json`
|
|
42
|
+
- Added proper `codex exec resume` support for resumed sessions
|
|
43
|
+
- Parse real Codex JSONL events (`thread.started`, `item.completed`, `turn.completed`)
|
|
44
|
+
- Preserve `sessionId` and token `usage` from Codex runtime output
|
|
45
|
+
|
|
46
|
+
**Token Efficiency + Runtime Reuse:**
|
|
47
|
+
- Refactored `src/agent-dispatch.ts` to emit compact structured JSON task envelopes instead of verbose Markdown task files
|
|
48
|
+
- Fixed generated CLI handoff commands for Codex and Claude Code to match current CLIs
|
|
49
|
+
- Wired `SkillExecutionCache` into `src/skill-chain.ts` for real cached skill-chain reuse during execution
|
|
50
|
+
- Wired successful execution write-back into `src/execution-analyzer.ts`
|
|
51
|
+
- Added `compressMaybe()` helper in `src/utils/output-compress.ts` for safer runtime log compression
|
|
52
|
+
|
|
53
|
+
**Docs, Profiles, and Naming Cleanup:**
|
|
54
|
+
- Synced skill install manifests in `skills/profiles/{core,design,growth,full}.txt` and `skills/profiles/top35.json`
|
|
55
|
+
- Updated skill library docs under `docs/skills/` to remove broken links to deleted/deprecated skill folders
|
|
56
|
+
- Cleaned workflow and operations docs to point at current skills like `cm-safe-deploy`, `cm-design-system`, `cm-quality-gate`, `cm-execution`, and `cm-skill-index`
|
|
57
|
+
- Reduced deprecation-heavy copywriting in user-facing docs so new users see the current path first
|
|
58
|
+
- Kept migration-specific references only where they still serve version-upgrade guidance (`docs/migration-v2.md`) or advisory protocol compatibility
|
|
59
|
+
|
|
60
|
+
**Tests Added:**
|
|
61
|
+
- `test/codex-backend.test.ts`
|
|
62
|
+
- `test/agent-dispatch.test.ts`
|
|
63
|
+
- `test/skill-chain-cache.test.ts`
|
|
64
|
+
- `test/skill-token-report.test.ts`
|
|
65
|
+
- `test/brain-token-skill.test.ts`
|
|
66
|
+
|
|
67
|
+
**Verification:**
|
|
68
|
+
- `npm run test:gate:kit`
|
|
69
|
+
- Result: 54 test files passed, 422 tests passed
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
9
73
|
## [7.0.0] - 2026-05-11
|
|
10
74
|
|
|
11
75
|
### 🚀 Improvements — Browse Hybrid Bridge
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**50+ skills. One install. Your AI coding agent becomes a full team.**
|
|
8
8
|
|
|
9
|
-
**v7.0 — Browse Hybrid Bridge:** AI-native browser automation with a11y snapshots, error collection, video recording.
|
|
9
|
+
**v7.0.2 — Browse Hybrid Bridge:** AI-native browser automation with a11y snapshots, error collection, video recording.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
( . \ --- / . )
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
Meet Cody 🐹
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
[](https://www.npmjs.com/package/codymaster)
|
|
21
|
+
[](https://www.npmjs.com/package/codymaster)
|
|
22
|
+
[](https://github.com/tody-agent/codymaster/blob/main/LICENSE)
|
|
21
23
|
|
|
22
24
|
---
|
|
23
25
|
|
|
@@ -243,12 +245,58 @@ cm status # See your tasks and progress
|
|
|
243
245
|
cm dashboard # Open the visual dashboard
|
|
244
246
|
```
|
|
245
247
|
|
|
248
|
+
### For OpenCode users
|
|
249
|
+
|
|
250
|
+
OpenCode supports both skills and plugins:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
git clone https://github.com/tody-agent/codymaster.git ~/.cody-master
|
|
254
|
+
|
|
255
|
+
# Skills (auto-load)
|
|
256
|
+
ln -s ~/.cody-master/.opencode/skills ~/.opencode/skills
|
|
257
|
+
|
|
258
|
+
# Plugins (optional — adds custom tools)
|
|
259
|
+
mkdir -p ~/.opencode/plugins
|
|
260
|
+
ln -s ~/.cody-master/.opencode/plugins/cm-brainstorm-idea.ts ~/.opencode/plugins/
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Restart OpenCode to activate. The `cm-brainstorm-idea` plugin adds a strategic analysis tool with auto-detection for brainstorm keywords.
|
|
264
|
+
|
|
265
|
+
📖 [Full OpenCode installation guide →](.opencode/INSTALL.md)
|
|
266
|
+
|
|
267
|
+
### For Codex users
|
|
268
|
+
|
|
269
|
+
Fastest path:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
git clone https://github.com/tody-agent/codymaster.git ~/.cody-master
|
|
273
|
+
cd ~/.cody-master
|
|
274
|
+
npm ci
|
|
275
|
+
npm run build:platforms
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Then tell Codex:
|
|
279
|
+
|
|
280
|
+
```text
|
|
281
|
+
Fetch and follow instructions from https://raw.githubusercontent.com/tody-agent/codymaster/main/.codex/INSTALL.md
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Or use the local Codex skill tree directly at `.codex/skills/`.
|
|
285
|
+
|
|
246
286
|
### No Node.js?
|
|
247
287
|
|
|
248
288
|
```bash
|
|
249
289
|
bash <(curl -fsSL https://raw.githubusercontent.com/tody-agent/codymaster/main/install.sh) --all --profile core
|
|
250
290
|
```
|
|
251
291
|
|
|
292
|
+
### What's in the package
|
|
293
|
+
|
|
294
|
+
- **50+ skills** — ready-to-use SKILL.md files for every major AI coding agent
|
|
295
|
+
- **CLI (`cm`)** — install wizard, doctor, dashboard, MCP server, browse daemon
|
|
296
|
+
- **Skill profiles** — curated bundles: `core`, `growth`, `full`, `knowledge`
|
|
297
|
+
- **Multi-platform** — installs to Claude Code, Cursor, Gemini, Codex, OpenCode, Windsurf, Cline, Aider, Continue, Kiro, Amazon Q, Amp, Copilot, Claude Desktop
|
|
298
|
+
- **Zero config** — detects your tools, installs skills, you're done
|
|
299
|
+
|
|
252
300
|
---
|
|
253
301
|
|
|
254
302
|
## The Dashboard
|
|
@@ -315,6 +363,71 @@ cm mcp-serve --print-config # Paste into Goose config
|
|
|
315
363
|
|
|
316
364
|
---
|
|
317
365
|
|
|
366
|
+
## CLI Commands
|
|
367
|
+
|
|
368
|
+
| Command | Description |
|
|
369
|
+
|---------|-------------|
|
|
370
|
+
| `cm` | Launch interactive wizard (auto-detect AI tools) |
|
|
371
|
+
| `cm doctor` | Check installation health across all platforms |
|
|
372
|
+
| `cm status` | View current tasks and progress |
|
|
373
|
+
| `cm dashboard` | Open visual mission control |
|
|
374
|
+
| `cm install <platform> --profile <name>` | Install skills to a specific platform |
|
|
375
|
+
| `cm update --full` | Update all skills to latest |
|
|
376
|
+
| `cm upgrade` | Upgrade CodyMaster itself |
|
|
377
|
+
| `cm mcp-serve` | Run as MCP server for Claude Desktop |
|
|
378
|
+
| `cm browse` | Open a URL in the browse daemon |
|
|
379
|
+
| `cm browse screenshot <url>` | Capture a screenshot |
|
|
380
|
+
| `cm browse snapshot <url>` | Get accessibility tree snapshot |
|
|
381
|
+
|
|
382
|
+
### Skill Profiles
|
|
383
|
+
|
|
384
|
+
| Profile | Skills | Best For |
|
|
385
|
+
|---------|--------|----------|
|
|
386
|
+
| `core` | 15 | Daily coding — planning, TDD, debug, review, deploy |
|
|
387
|
+
| `growth` | 25 | + design system, i18n, content factory |
|
|
388
|
+
| `full` | 50+ | Everything — full senior team |
|
|
389
|
+
| `knowledge` | 10 | Docs, code intelligence, retros |
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
cm install claude-code --profile core
|
|
393
|
+
cm install cursor --profile growth
|
|
394
|
+
cm install gemini --profile full
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Troubleshooting
|
|
400
|
+
|
|
401
|
+
### `cm: command not found`
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
# Make sure global npm bin is in PATH
|
|
405
|
+
npm config get prefix
|
|
406
|
+
# Add the output bin/ folder to your PATH
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Skills not showing in AI agent
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
cm doctor # Check what's installed where
|
|
413
|
+
cm install --all # Re-install to all detected platforms
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Build fails
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
npm run build # Rebuild TypeScript
|
|
420
|
+
npm run test:gate:kit # Run full quality gate
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### Permission errors (macOS/Linux)
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
318
431
|
## Contributing
|
|
319
432
|
|
|
320
433
|
1. ⭐ **Star the repo** — helps more builders find this
|
|
@@ -335,6 +448,8 @@ CI runs `npm run test:gate:kit` on every push and PR.
|
|
|
335
448
|
| 🎨 Design Pipeline | [docs/design-pipeline.md](docs/design-pipeline.md) |
|
|
336
449
|
| 🛠️ Skills | [skills/](skills/) |
|
|
337
450
|
| 📖 Our Story | [cody.todyle.com/story](https://cody.todyle.com/story) |
|
|
451
|
+
| 📋 Changelog | [CHANGELOG.md](CHANGELOG.md) |
|
|
452
|
+
| 🐛 Issues | [GitHub Issues](https://github.com/tody-agent/codymaster/issues) |
|
|
338
453
|
|
|
339
454
|
---
|
|
340
455
|
|
package/dist/agent/codex.js
CHANGED
|
@@ -30,32 +30,79 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
exports.CodexBackend = void 0;
|
|
33
|
+
exports.buildCodexPrompt = buildCodexPrompt;
|
|
34
|
+
exports.buildCodexArgs = buildCodexArgs;
|
|
33
35
|
const spawn_helper_1 = require("./spawn-helper");
|
|
36
|
+
function buildCodexPrompt(prompt, opts) {
|
|
37
|
+
var _a;
|
|
38
|
+
if (!((_a = opts.systemPrompt) === null || _a === void 0 ? void 0 : _a.trim()))
|
|
39
|
+
return prompt;
|
|
40
|
+
return [
|
|
41
|
+
'<system_prompt>',
|
|
42
|
+
opts.systemPrompt.trim(),
|
|
43
|
+
'</system_prompt>',
|
|
44
|
+
'',
|
|
45
|
+
prompt,
|
|
46
|
+
].join('\n');
|
|
47
|
+
}
|
|
48
|
+
function buildCodexArgs(prompt, opts) {
|
|
49
|
+
const baseArgs = ['--json', '--skip-git-repo-check'];
|
|
50
|
+
if (opts.model)
|
|
51
|
+
baseArgs.push('--model', opts.model);
|
|
52
|
+
if (opts.customArgs)
|
|
53
|
+
baseArgs.push(...opts.customArgs);
|
|
54
|
+
const finalPrompt = buildCodexPrompt(prompt, opts);
|
|
55
|
+
if (opts.resumeSessionId) {
|
|
56
|
+
return ['exec', 'resume', ...baseArgs, opts.resumeSessionId, finalPrompt];
|
|
57
|
+
}
|
|
58
|
+
return ['exec', ...baseArgs, finalPrompt];
|
|
59
|
+
}
|
|
34
60
|
class AgentMessageTransformer {
|
|
35
61
|
constructor() {
|
|
36
62
|
this.output = [];
|
|
37
63
|
}
|
|
38
64
|
transform(msg) {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
65
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
66
|
+
const codexEvent = msg;
|
|
67
|
+
if (codexEvent.thread_id) {
|
|
68
|
+
this.lastThreadId = codexEvent.thread_id;
|
|
69
|
+
}
|
|
70
|
+
if (codexEvent.type === 'item.completed' && ((_a = codexEvent.item) === null || _a === void 0 ? void 0 : _a.type) === 'agent_message') {
|
|
71
|
+
const content = (_b = codexEvent.item.text) !== null && _b !== void 0 ? _b : '';
|
|
72
|
+
if (content) {
|
|
73
|
+
this.output.push(content);
|
|
74
|
+
return [{ type: 'text', content, sessionId: this.lastThreadId }];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (codexEvent.type === 'turn.completed' && codexEvent.usage) {
|
|
78
|
+
this.usage = {
|
|
79
|
+
codex: {
|
|
80
|
+
input: (_c = codexEvent.usage.input_tokens) !== null && _c !== void 0 ? _c : 0,
|
|
81
|
+
output: (_d = codexEvent.usage.output_tokens) !== null && _d !== void 0 ? _d : 0,
|
|
82
|
+
cacheRead: (_e = codexEvent.usage.cached_input_tokens) !== null && _e !== void 0 ? _e : 0,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
40
87
|
const t = msg.type;
|
|
41
88
|
if (t === 'message' || t === 'text' || t === 'assistant') {
|
|
42
|
-
const content = (
|
|
89
|
+
const content = (_g = (_f = msg.content) !== null && _f !== void 0 ? _f : msg.text) !== null && _g !== void 0 ? _g : '';
|
|
43
90
|
if (content) {
|
|
44
91
|
this.output.push(content);
|
|
45
|
-
return [{ type: 'text', content }];
|
|
92
|
+
return [{ type: 'text', content, sessionId: this.lastThreadId }];
|
|
46
93
|
}
|
|
47
94
|
}
|
|
48
95
|
if (t === 'thinking') {
|
|
49
|
-
return [{ type: 'thinking', content: (
|
|
96
|
+
return [{ type: 'thinking', content: (_h = msg.content) !== null && _h !== void 0 ? _h : '' }];
|
|
50
97
|
}
|
|
51
98
|
if (t === 'tool_use' || t === 'tool-use') {
|
|
52
99
|
return [
|
|
53
100
|
{
|
|
54
101
|
type: 'tool-use',
|
|
55
|
-
tool: (
|
|
56
|
-
callId: (
|
|
57
|
-
input: (
|
|
58
|
-
attempt: (
|
|
102
|
+
tool: (_k = (_j = msg.tool) !== null && _j !== void 0 ? _j : msg.name) !== null && _k !== void 0 ? _k : 'unknown',
|
|
103
|
+
callId: (_m = (_l = msg.callId) !== null && _l !== void 0 ? _l : msg.id) !== null && _m !== void 0 ? _m : '',
|
|
104
|
+
input: (_p = (_o = msg.input) !== null && _o !== void 0 ? _o : msg.arguments) !== null && _p !== void 0 ? _p : {},
|
|
105
|
+
attempt: (_q = msg.attempt) !== null && _q !== void 0 ? _q : 1,
|
|
59
106
|
parentCallId: msg.parentCallId,
|
|
60
107
|
},
|
|
61
108
|
];
|
|
@@ -64,26 +111,26 @@ class AgentMessageTransformer {
|
|
|
64
111
|
return [
|
|
65
112
|
{
|
|
66
113
|
type: 'tool-result',
|
|
67
|
-
callId: (
|
|
68
|
-
output: (
|
|
69
|
-
isError: (
|
|
114
|
+
callId: (_s = (_r = msg.callId) !== null && _r !== void 0 ? _r : msg.id) !== null && _s !== void 0 ? _s : '',
|
|
115
|
+
output: (_u = (_t = msg.output) !== null && _t !== void 0 ? _t : msg.content) !== null && _u !== void 0 ? _u : '',
|
|
116
|
+
isError: (_v = msg.isError) !== null && _v !== void 0 ? _v : false,
|
|
70
117
|
},
|
|
71
118
|
];
|
|
72
119
|
}
|
|
73
120
|
if (t === 'status') {
|
|
74
|
-
return [{ type: 'status', status: (
|
|
121
|
+
return [{ type: 'status', status: (_w = msg.status) !== null && _w !== void 0 ? _w : '' }];
|
|
75
122
|
}
|
|
76
123
|
if (t === 'log') {
|
|
77
124
|
return [
|
|
78
125
|
{
|
|
79
126
|
type: 'log',
|
|
80
|
-
level: (
|
|
81
|
-
content: (
|
|
127
|
+
level: (_x = msg.level) !== null && _x !== void 0 ? _x : 'info',
|
|
128
|
+
content: (_y = msg.content) !== null && _y !== void 0 ? _y : '',
|
|
82
129
|
},
|
|
83
130
|
];
|
|
84
131
|
}
|
|
85
132
|
if (t === 'error') {
|
|
86
|
-
return [{ type: 'error', content: (
|
|
133
|
+
return [{ type: 'error', content: (_0 = (_z = msg.content) !== null && _z !== void 0 ? _z : msg.message) !== null && _0 !== void 0 ? _0 : '' }];
|
|
87
134
|
}
|
|
88
135
|
// Unknown message types are surfaced as status
|
|
89
136
|
return [{ type: 'status', status: JSON.stringify(msg) }];
|
|
@@ -91,6 +138,12 @@ class AgentMessageTransformer {
|
|
|
91
138
|
getOutput() {
|
|
92
139
|
return this.output.join('');
|
|
93
140
|
}
|
|
141
|
+
getSessionId() {
|
|
142
|
+
return this.lastThreadId;
|
|
143
|
+
}
|
|
144
|
+
getUsage() {
|
|
145
|
+
return this.usage;
|
|
146
|
+
}
|
|
94
147
|
}
|
|
95
148
|
function transformMessages(raw, transformer) {
|
|
96
149
|
return __asyncGenerator(this, arguments, function* transformMessages_1() {
|
|
@@ -134,6 +187,8 @@ function collectResult(proc, transformer, startTime) {
|
|
|
134
187
|
output: transformer.getOutput(),
|
|
135
188
|
durationMs,
|
|
136
189
|
failureReason,
|
|
190
|
+
sessionId: transformer.getSessionId(),
|
|
191
|
+
usage: transformer.getUsage(),
|
|
137
192
|
});
|
|
138
193
|
});
|
|
139
194
|
proc.child.on('error', (err) => {
|
|
@@ -144,6 +199,8 @@ function collectResult(proc, transformer, startTime) {
|
|
|
144
199
|
error: err instanceof Error ? err.message : String(err),
|
|
145
200
|
failureReason: 'agent_crash',
|
|
146
201
|
durationMs,
|
|
202
|
+
sessionId: transformer.getSessionId(),
|
|
203
|
+
usage: transformer.getUsage(),
|
|
147
204
|
});
|
|
148
205
|
});
|
|
149
206
|
});
|
|
@@ -177,12 +234,7 @@ class CodexBackend {
|
|
|
177
234
|
}
|
|
178
235
|
execute(prompt, opts) {
|
|
179
236
|
return __awaiter(this, void 0, void 0, function* () {
|
|
180
|
-
const args =
|
|
181
|
-
if (opts.model)
|
|
182
|
-
args.push('--model', opts.model);
|
|
183
|
-
if (opts.customArgs)
|
|
184
|
-
args.push(...opts.customArgs);
|
|
185
|
-
args.push(prompt);
|
|
237
|
+
const args = buildCodexArgs(prompt, opts);
|
|
186
238
|
const proc = (0, spawn_helper_1.spawnProcess)({
|
|
187
239
|
command: 'codex',
|
|
188
240
|
args,
|
package/dist/agent-dispatch.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.validateDispatch = validateDispatch;
|
|
7
|
+
exports.generateTaskEnvelope = generateTaskEnvelope;
|
|
7
8
|
exports.dispatchTaskToAgent = dispatchTaskToAgent;
|
|
8
9
|
const fs_1 = __importDefault(require("fs"));
|
|
9
10
|
const path_1 = __importDefault(require("path"));
|
|
@@ -11,6 +12,8 @@ const path_1 = __importDefault(require("path"));
|
|
|
11
12
|
const AGENT_SKILL_PREFIX = {
|
|
12
13
|
'antigravity': '@[/',
|
|
13
14
|
'claude-code': '/',
|
|
15
|
+
'codex': '/',
|
|
16
|
+
'opencode': '/',
|
|
14
17
|
'cursor': '@',
|
|
15
18
|
'gemini-cli': '@[/',
|
|
16
19
|
'windsurf': '@',
|
|
@@ -20,6 +23,8 @@ const AGENT_SKILL_PREFIX = {
|
|
|
20
23
|
const AGENT_DISPLAY = {
|
|
21
24
|
'antigravity': 'Google Antigravity',
|
|
22
25
|
'claude-code': 'Claude Code',
|
|
26
|
+
'codex': 'OpenAI Codex',
|
|
27
|
+
'opencode': 'OpenCode',
|
|
23
28
|
'cursor': 'Cursor',
|
|
24
29
|
'gemini-cli': 'Gemini CLI',
|
|
25
30
|
'windsurf': 'Windsurf',
|
|
@@ -56,58 +61,60 @@ function validateDispatch(task, project, force = false) {
|
|
|
56
61
|
return null; // All validations passed
|
|
57
62
|
}
|
|
58
63
|
// ─── Task File Generation ───────────────────────────────────────────────────
|
|
59
|
-
function
|
|
64
|
+
function buildDoneCriteria(task) {
|
|
65
|
+
const criteria = [
|
|
66
|
+
'Complete the requested scope only.',
|
|
67
|
+
'Preserve unrelated existing changes.',
|
|
68
|
+
'Report verification evidence before claiming completion.',
|
|
69
|
+
];
|
|
70
|
+
if (task.skill) {
|
|
71
|
+
criteria.unshift(`Follow the workflow guidance from skill "${task.skill}" when it applies.`);
|
|
72
|
+
}
|
|
73
|
+
return criteria;
|
|
74
|
+
}
|
|
75
|
+
function generateTaskEnvelope(task, project, dashboardPort = 6969) {
|
|
60
76
|
const agentName = AGENT_DISPLAY[task.agent] || task.agent;
|
|
61
77
|
const skillPrefix = AGENT_SKILL_PREFIX[task.agent] || '';
|
|
62
78
|
const skillSuffix = task.agent === 'antigravity' || task.agent === 'gemini-cli' ? ']' : '';
|
|
63
79
|
const skillRef = task.skill ? `${skillPrefix}${task.skill}${skillSuffix}` : 'None';
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
return {
|
|
81
|
+
schema: 'codymaster-task@2',
|
|
82
|
+
task: {
|
|
83
|
+
id: task.id,
|
|
84
|
+
title: task.title,
|
|
85
|
+
description: task.description || '',
|
|
86
|
+
priority: task.priority,
|
|
87
|
+
createdAt: task.createdAt,
|
|
88
|
+
dispatchedAt: new Date().toISOString(),
|
|
89
|
+
},
|
|
90
|
+
execution: {
|
|
91
|
+
agent: agentName,
|
|
92
|
+
workspace: project.path,
|
|
93
|
+
skill: task.skill || null,
|
|
94
|
+
skillInvocation: task.skill ? skillRef : null,
|
|
95
|
+
doneCriteria: buildDoneCriteria(task),
|
|
96
|
+
},
|
|
97
|
+
project: {
|
|
98
|
+
id: project.id,
|
|
99
|
+
name: project.name,
|
|
100
|
+
},
|
|
101
|
+
progressReporting: {
|
|
102
|
+
baseUrl: `http://localhost:${dashboardPort}`,
|
|
103
|
+
inProgress: {
|
|
104
|
+
method: 'PUT',
|
|
105
|
+
path: `/api/tasks/${task.id}/move`,
|
|
106
|
+
body: { column: 'in-progress' },
|
|
107
|
+
},
|
|
108
|
+
done: {
|
|
109
|
+
method: 'PUT',
|
|
110
|
+
path: `/api/tasks/${task.id}/move`,
|
|
111
|
+
body: { column: 'done' },
|
|
112
|
+
},
|
|
113
|
+
},
|
|
67
114
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|-------|-------|
|
|
72
|
-
| Agent | ${agentName} |
|
|
73
|
-
| Skill | ${skillRef} |
|
|
74
|
-
| Priority | ${priorityEmoji[task.priority] || '🟡'} ${task.priority} |
|
|
75
|
-
| Project | ${project.name} |
|
|
76
|
-
| Created | ${task.createdAt} |
|
|
77
|
-
| Dispatched | ${now} |
|
|
78
|
-
| Task ID | ${task.id} |
|
|
79
|
-
|
|
80
|
-
## Description
|
|
81
|
-
|
|
82
|
-
${task.description || 'No additional description provided.'}
|
|
83
|
-
|
|
84
|
-
## Instructions
|
|
85
|
-
|
|
86
|
-
Execute this task in the project workspace at: \`${project.path}\`
|
|
87
|
-
`;
|
|
88
|
-
if (task.skill) {
|
|
89
|
-
content += `
|
|
90
|
-
Use the skill \`${task.skill}\` to guide execution. Invoke it with: ${skillRef}
|
|
91
|
-
`;
|
|
92
|
-
}
|
|
93
|
-
content += `
|
|
94
|
-
## Progress Reporting
|
|
95
|
-
|
|
96
|
-
After completing the task, update the status via CodyMaster API:
|
|
97
|
-
|
|
98
|
-
\`\`\`bash
|
|
99
|
-
# Mark as in-progress
|
|
100
|
-
curl -s -X PUT http://localhost:${dashboardPort}/api/tasks/${task.id}/move \\
|
|
101
|
-
-H "Content-Type: application/json" \\
|
|
102
|
-
-d '{"column": "in-progress"}'
|
|
103
|
-
|
|
104
|
-
# Mark as done when complete
|
|
105
|
-
curl -s -X PUT http://localhost:${dashboardPort}/api/tasks/${task.id}/move \\
|
|
106
|
-
-H "Content-Type: application/json" \\
|
|
107
|
-
-d '{"column": "done"}'
|
|
108
|
-
\`\`\`
|
|
109
|
-
`;
|
|
110
|
-
return content;
|
|
115
|
+
}
|
|
116
|
+
function generateTaskFileContent(task, project, dashboardPort = 6969) {
|
|
117
|
+
return JSON.stringify(generateTaskEnvelope(task, project, dashboardPort), null, 2);
|
|
111
118
|
}
|
|
112
119
|
// ─── Dispatcher ─────────────────────────────────────────────────────────────
|
|
113
120
|
function dispatchTaskToAgent(task, project, force = false) {
|
|
@@ -156,6 +163,14 @@ function dispatchTaskToAgent(task, project, force = false) {
|
|
|
156
163
|
}
|
|
157
164
|
// Generate CLI command
|
|
158
165
|
const relativePath = path_1.default.relative(project.path, filePath);
|
|
159
|
-
const
|
|
166
|
+
const AGENT_CLI = {
|
|
167
|
+
'antigravity': `antigravity -p "$(cat \\"${relativePath}\\")"`,
|
|
168
|
+
'codex': `codex exec "$(cat \\"${relativePath}\\")"`,
|
|
169
|
+
'opencode': `opencode --task "${relativePath}"`,
|
|
170
|
+
'cursor': `cursor --task "${relativePath}"`,
|
|
171
|
+
'gemini-cli': `gemini run --task "${relativePath}"`,
|
|
172
|
+
'claude-code': `claude -p "$(cat \\"${relativePath}\\")"`,
|
|
173
|
+
};
|
|
174
|
+
const cliCommand = AGENT_CLI[task.agent] || `# Open and run: ${relativePath}`;
|
|
160
175
|
return { success: true, filePath, prompt: content, cliCommand };
|
|
161
176
|
}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerBrainCommands = registerBrainCommands;
|
|
4
4
|
const smart_brain_router_1 = require("../../smart-brain-router");
|
|
5
5
|
const skill_execution_cache_1 = require("../../skill-execution-cache");
|
|
6
|
+
const skill_token_report_1 = require("../../skill-token-report");
|
|
6
7
|
const token_budget_1 = require("../../token-budget");
|
|
7
8
|
// ─── Brain & Token CLI Commands ──────────────────────────────────────────────
|
|
8
9
|
function registerBrainCommands(program) {
|
|
@@ -27,6 +28,23 @@ function registerBrainCommands(program) {
|
|
|
27
28
|
const token = program
|
|
28
29
|
.command('token')
|
|
29
30
|
.description('Token usage analysis and savings tracking');
|
|
31
|
+
token
|
|
32
|
+
.command('skill <skillName>')
|
|
33
|
+
.description('Show token footprint for a skill SKILL.md and direct references/')
|
|
34
|
+
.option('-p, --project <path>', 'Project path', process.cwd())
|
|
35
|
+
.option('--json', 'Emit stable JSON output', false)
|
|
36
|
+
.option('--baseline <file>', 'Compare against a legacy monolithic file')
|
|
37
|
+
.action((skillName, opts) => {
|
|
38
|
+
const report = (0, skill_token_report_1.analyzeSkillTokenFootprint)(skillName, {
|
|
39
|
+
projectPath: opts.project,
|
|
40
|
+
baselinePath: opts.baseline,
|
|
41
|
+
});
|
|
42
|
+
if (opts.json) {
|
|
43
|
+
console.log(JSON.stringify(report, null, 2));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
console.log((0, skill_token_report_1.formatSkillTokenReport)(report));
|
|
47
|
+
});
|
|
30
48
|
token
|
|
31
49
|
.command('report')
|
|
32
50
|
.description('Show current token budget allocation')
|
|
@@ -44,7 +44,7 @@ Implement the chosen variant using existing design system tokens. …
|
|
|
44
44
|
`;
|
|
45
45
|
const README = `# .cm/design-studio
|
|
46
46
|
|
|
47
|
-
Local artifact folder for **
|
|
47
|
+
Local artifact folder for the **design-studio** flow: variants, checklist, handoff.
|
|
48
48
|
|
|
49
49
|
Happy path:
|
|
50
50
|
|
package/dist/cm-suggest.js
CHANGED
|
@@ -50,13 +50,13 @@ function suggestFromContext(projectPath) {
|
|
|
50
50
|
out.push({ skill: 'cm-dockit', reason: 'Markdown/docs paths changed.' });
|
|
51
51
|
}
|
|
52
52
|
if (/(package\.json|package-lock\.json|pnpm-lock|yarn\.lock)/m.test(joined)) {
|
|
53
|
-
out.push({ skill: 'cm-
|
|
53
|
+
out.push({ skill: 'cm-quality-gate', reason: 'Dependency lockfiles changed; run the verification gate.' });
|
|
54
54
|
}
|
|
55
55
|
if (/(\.github\/workflows\/|Dockerfile|fly\.toml|wrangler)/m.test(joined)) {
|
|
56
56
|
out.push({ skill: 'cm-safe-deploy', reason: 'CI or deploy config changed.' });
|
|
57
57
|
}
|
|
58
58
|
if (lines.length > 8) {
|
|
59
|
-
out.push({ skill: 'cm-
|
|
59
|
+
out.push({ skill: 'cm-execution', reason: 'Many working-tree changes; consider isolated execution or a clean workspace.' });
|
|
60
60
|
}
|
|
61
61
|
const sprint = (0, sprint_pipeline_1.readSprintState)(root);
|
|
62
62
|
if (sprint && sprint.current_index >= 0 && sprint.current_index < sprint.pipeline.length) {
|
|
@@ -69,7 +69,7 @@ function suggestFromContext(projectPath) {
|
|
|
69
69
|
}
|
|
70
70
|
if (fs_1.default.existsSync(path_1.default.join(root, '.cm', 'config.yaml'))) {
|
|
71
71
|
out.push({
|
|
72
|
-
skill: 'cm-engineering
|
|
72
|
+
skill: 'cm-mcp-engineering',
|
|
73
73
|
reason: '`.cm/config.yaml` present; engineering commands honor shared config.',
|
|
74
74
|
});
|
|
75
75
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProjectActiveAgents = getProjectActiveAgents;
|
|
4
|
+
function getProjectActiveAgents(project, tasks) {
|
|
5
|
+
return [...new Set([
|
|
6
|
+
...(Array.isArray(project.agents) ? project.agents : []),
|
|
7
|
+
...tasks.map(t => t.agent).filter(Boolean),
|
|
8
|
+
])];
|
|
9
|
+
}
|