@massu/core 1.2.1 → 1.3.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/README.md +40 -0
- package/commands/README.md +122 -0
- package/commands/massu-deploy.python.md +200 -0
- package/commands/massu-scaffold-page.md +172 -59
- package/commands/massu-scaffold-page.swift.md +121 -0
- package/commands/massu-scaffold-router.python.md +143 -0
- package/dist/cli.js +482 -223
- package/dist/hooks/auto-learning-pipeline.js +7 -4
- package/dist/hooks/classify-failure.js +7 -4
- package/dist/hooks/cost-tracker.js +7 -4
- package/dist/hooks/fix-detector.js +7 -4
- package/dist/hooks/incident-pipeline.js +7 -4
- package/dist/hooks/post-edit-context.js +7 -4
- package/dist/hooks/post-tool-use.js +7 -4
- package/dist/hooks/pre-compact.js +7 -4
- package/dist/hooks/pre-delete-check.js +7 -4
- package/dist/hooks/quality-event.js +7 -4
- package/dist/hooks/rule-enforcement-pipeline.js +7 -4
- package/dist/hooks/session-end.js +7 -4
- package/dist/hooks/session-start.js +7 -4
- package/dist/hooks/user-prompt.js +7 -4
- package/package.json +1 -1
- package/src/cli.ts +6 -0
- package/src/commands/install-commands.ts +366 -42
- package/src/commands/show-template.ts +65 -0
- package/src/config.ts +6 -3
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -384,13 +384,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
384
384
|
name: parsed.project.name,
|
|
385
385
|
root: projectRoot
|
|
386
386
|
},
|
|
387
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
388
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
389
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
390
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
391
|
+
// top-level passthrough language blocks.
|
|
387
392
|
framework: {
|
|
388
|
-
|
|
393
|
+
...fw,
|
|
389
394
|
router,
|
|
390
395
|
orm,
|
|
391
|
-
ui
|
|
392
|
-
primary: fw.primary,
|
|
393
|
-
languages: fw.languages
|
|
396
|
+
ui
|
|
394
397
|
},
|
|
395
398
|
paths: parsed.paths,
|
|
396
399
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -383,13 +383,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
383
383
|
name: parsed.project.name,
|
|
384
384
|
root: projectRoot
|
|
385
385
|
},
|
|
386
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
387
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
388
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
389
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
390
|
+
// top-level passthrough language blocks.
|
|
386
391
|
framework: {
|
|
387
|
-
|
|
392
|
+
...fw,
|
|
388
393
|
router,
|
|
389
394
|
orm,
|
|
390
|
-
ui
|
|
391
|
-
primary: fw.primary,
|
|
392
|
-
languages: fw.languages
|
|
395
|
+
ui
|
|
393
396
|
},
|
|
394
397
|
paths: parsed.paths,
|
|
395
398
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -384,13 +384,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
384
384
|
name: parsed.project.name,
|
|
385
385
|
root: projectRoot
|
|
386
386
|
},
|
|
387
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
388
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
389
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
390
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
391
|
+
// top-level passthrough language blocks.
|
|
387
392
|
framework: {
|
|
388
|
-
|
|
393
|
+
...fw,
|
|
389
394
|
router,
|
|
390
395
|
orm,
|
|
391
|
-
ui
|
|
392
|
-
primary: fw.primary,
|
|
393
|
-
languages: fw.languages
|
|
396
|
+
ui
|
|
394
397
|
},
|
|
395
398
|
paths: parsed.paths,
|
|
396
399
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -383,13 +383,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
383
383
|
name: parsed.project.name,
|
|
384
384
|
root: projectRoot
|
|
385
385
|
},
|
|
386
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
387
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
388
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
389
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
390
|
+
// top-level passthrough language blocks.
|
|
386
391
|
framework: {
|
|
387
|
-
|
|
392
|
+
...fw,
|
|
388
393
|
router,
|
|
389
394
|
orm,
|
|
390
|
-
ui
|
|
391
|
-
primary: fw.primary,
|
|
392
|
-
languages: fw.languages
|
|
395
|
+
ui
|
|
393
396
|
},
|
|
394
397
|
paths: parsed.paths,
|
|
395
398
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -6161,13 +6161,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
6161
6161
|
name: parsed.project.name,
|
|
6162
6162
|
root: projectRoot
|
|
6163
6163
|
},
|
|
6164
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
6165
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
6166
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
6167
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
6168
|
+
// top-level passthrough language blocks.
|
|
6164
6169
|
framework: {
|
|
6165
|
-
|
|
6170
|
+
...fw,
|
|
6166
6171
|
router,
|
|
6167
6172
|
orm,
|
|
6168
|
-
ui
|
|
6169
|
-
primary: fw.primary,
|
|
6170
|
-
languages: fw.languages
|
|
6173
|
+
ui
|
|
6171
6174
|
},
|
|
6172
6175
|
paths: parsed.paths,
|
|
6173
6176
|
toolPrefix: parsed.toolPrefix,
|
|
@@ -385,13 +385,16 @@ Hint: run \`massu config refresh\` to regenerate a valid config or fix the liste
|
|
|
385
385
|
name: parsed.project.name,
|
|
386
386
|
root: projectRoot
|
|
387
387
|
},
|
|
388
|
+
// Spread `fw` first so zod-`.passthrough()` extras (e.g., `framework.swift`,
|
|
389
|
+
// `framework.python`) survive into the consumer-visible Config. Then override
|
|
390
|
+
// the v2-backcompat-mirrored router/orm/ui values. Without the spread, the
|
|
391
|
+
// variant-resolution `pickVariant` (install-commands.ts) cannot see the
|
|
392
|
+
// top-level passthrough language blocks.
|
|
388
393
|
framework: {
|
|
389
|
-
|
|
394
|
+
...fw,
|
|
390
395
|
router,
|
|
391
396
|
orm,
|
|
392
|
-
ui
|
|
393
|
-
primary: fw.primary,
|
|
394
|
-
languages: fw.languages
|
|
397
|
+
ui
|
|
395
398
|
},
|
|
396
399
|
paths: parsed.paths,
|
|
397
400
|
toolPrefix: parsed.toolPrefix,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@massu/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AI Engineering Governance MCP Server - Session memory, knowledge system, feature registry, code intelligence, rule enforcement, tiered tooling (12 free / 72 total), 55+ workflow commands, 11 agents, 20+ patterns",
|
|
6
6
|
"main": "src/server.ts",
|
package/src/cli.ts
CHANGED
|
@@ -47,6 +47,11 @@ async function main(): Promise<void> {
|
|
|
47
47
|
await runInstallCommands();
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
|
+
case 'show-template': {
|
|
51
|
+
const { runShowTemplate } = await import('./commands/show-template.ts');
|
|
52
|
+
await runShowTemplate(args.slice(1));
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
50
55
|
case 'validate-config': {
|
|
51
56
|
const { runValidateConfig } = await import('./commands/doctor.ts');
|
|
52
57
|
await runValidateConfig();
|
|
@@ -136,6 +141,7 @@ Commands:
|
|
|
136
141
|
doctor Check installation health
|
|
137
142
|
install-hooks Install/update Claude Code hooks
|
|
138
143
|
install-commands Install/update slash commands
|
|
144
|
+
show-template Print the resolved variant of a bundled template (e.g. for diffs)
|
|
139
145
|
validate-config Validate massu.config.yaml (alias: config validate)
|
|
140
146
|
config <sub> Config lifecycle: refresh | validate | upgrade | doctor | check-drift
|
|
141
147
|
|