@aws/ml-container-creator 0.10.0 → 0.10.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.
Files changed (71) hide show
  1. package/LICENSE-THIRD-PARTY +9304 -0
  2. package/bin/cli.js +2 -0
  3. package/config/bootstrap-e2e-stack.json +341 -0
  4. package/config/bootstrap-stack.json +40 -3
  5. package/config/parameter-schema-v2.json +5 -21
  6. package/config/tune-catalog.json +1781 -0
  7. package/infra/ci-harness/buildspec.yml +1 -0
  8. package/infra/ci-harness/lambda/path-prover/brain.ts +306 -0
  9. package/infra/ci-harness/lambda/path-prover/write-results.ts +152 -0
  10. package/infra/ci-harness/lib/ci-harness-stack.ts +837 -7
  11. package/infra/ci-harness/state-machines/path-prover.asl.json +496 -0
  12. package/package.json +51 -66
  13. package/servers/base-image-picker/index.js +121 -121
  14. package/servers/e2e-status/index.js +297 -0
  15. package/servers/e2e-status/manifest.json +14 -0
  16. package/servers/e2e-status/package.json +15 -0
  17. package/servers/endpoint-picker/LICENSE +202 -0
  18. package/servers/endpoint-picker/index.js +536 -0
  19. package/servers/endpoint-picker/manifest.json +14 -0
  20. package/servers/endpoint-picker/package.json +18 -0
  21. package/servers/hyperpod-cluster-picker/index.js +125 -125
  22. package/servers/instance-sizer/index.js +138 -138
  23. package/servers/instance-sizer/lib/instance-ranker.js +76 -76
  24. package/servers/instance-sizer/lib/model-resolver.js +61 -61
  25. package/servers/instance-sizer/lib/quota-resolver.js +113 -113
  26. package/servers/instance-sizer/lib/vram-estimator.js +31 -31
  27. package/servers/lib/bedrock-client.js +38 -38
  28. package/servers/lib/catalogs/model-servers.json +201 -3
  29. package/servers/lib/custom-validators.js +13 -13
  30. package/servers/lib/dynamic-resolver.js +4 -4
  31. package/servers/marketplace-picker/index.js +342 -0
  32. package/servers/marketplace-picker/manifest.json +14 -0
  33. package/servers/marketplace-picker/package.json +18 -0
  34. package/servers/model-picker/index.js +382 -382
  35. package/servers/region-picker/index.js +56 -56
  36. package/servers/workload-picker/LICENSE +202 -0
  37. package/servers/workload-picker/catalogs/workload-profiles.json +67 -0
  38. package/servers/workload-picker/index.js +171 -0
  39. package/servers/workload-picker/manifest.json +16 -0
  40. package/servers/workload-picker/package.json +16 -0
  41. package/src/app.js +4 -2
  42. package/src/lib/bootstrap-command-handler.js +579 -14
  43. package/src/lib/bootstrap-config.js +36 -0
  44. package/src/lib/bootstrap-profile-manager.js +48 -41
  45. package/src/lib/ci-register-helpers.js +74 -0
  46. package/src/lib/config-loader.js +3 -0
  47. package/src/lib/config-manager.js +7 -0
  48. package/src/lib/cuda-resolver.js +17 -8
  49. package/src/lib/generated/cli-options.js +315 -315
  50. package/src/lib/generated/parameter-matrix.js +661 -661
  51. package/src/lib/generated/validation-rules.js +71 -71
  52. package/src/lib/path-prover-brain.js +607 -0
  53. package/src/lib/prompts/project-prompts.js +12 -0
  54. package/src/lib/template-variable-resolver.js +25 -1
  55. package/src/lib/tune-catalog-validator.js +37 -4
  56. package/templates/Dockerfile +9 -0
  57. package/templates/code/adapter_sidecar.py +444 -0
  58. package/templates/code/serve +6 -0
  59. package/templates/code/serve.d/vllm.ejs +1 -1
  60. package/templates/do/.benchmark_writer.py +1476 -0
  61. package/templates/do/.tune_helper.py +982 -57
  62. package/templates/do/__pycache__/.benchmark_writer.cpython-312.pyc +0 -0
  63. package/templates/do/adapter +149 -0
  64. package/templates/do/benchmark +639 -85
  65. package/templates/do/config +108 -5
  66. package/templates/do/deploy.d/managed-inference.ejs +192 -11
  67. package/templates/do/optimize +106 -37
  68. package/templates/do/register +89 -0
  69. package/templates/do/test +13 -0
  70. package/templates/do/tune +378 -59
  71. package/templates/do/validate +44 -4
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@amzn/ml-container-creator-workload-picker",
3
+ "version": "1.0.0",
4
+ "description": "MCP server that provides named benchmark workload profiles for do/benchmark.",
5
+ "modes": {
6
+ "static": true,
7
+ "smart": false,
8
+ "discover": false
9
+ },
10
+ "catalogs": {
11
+ "workload-profiles": "./catalogs/workload-profiles.json"
12
+ },
13
+ "tool": {
14
+ "name": "get_workload_profile"
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@amzn/ml-container-creator-workload-picker",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "description": "MCP server that provides named benchmark workload profiles for ML Container Creator. Defines token distributions, concurrency levels, and streaming modes for standardized benchmarking.",
6
+ "type": "module",
7
+ "main": "index.js",
8
+ "license": "Apache-2.0",
9
+ "scripts": {
10
+ "test": "node test.js"
11
+ },
12
+ "dependencies": {
13
+ "@modelcontextprotocol/sdk": "^1.12.0",
14
+ "zod": "^3.22.0"
15
+ }
16
+ }
package/src/app.js CHANGED
@@ -16,7 +16,7 @@ import CommentGenerator from './lib/comment-generator.js';
16
16
  import ConfigurationManager from './lib/configuration-manager.js';
17
17
  import RegistryLoader from './lib/registry-loader.js';
18
18
  import { resolvePrefixedEnvVars } from './lib/engine-prefix-resolver.js';
19
- import { _ensureTemplateVariables, _validateEnvironmentVariables, _mergeEnvVarsWithPrecedence } from './lib/template-variable-resolver.js';
19
+ import { _ensureTemplateVariables, _validateEnvironmentVariables } from './lib/template-variable-resolver.js';
20
20
  import ejs from 'ejs';
21
21
 
22
22
  const __filename = fileURLToPath(import.meta.url);
@@ -344,13 +344,15 @@ export async function writeProject(templateDir, destDir, answers, registryConfig
344
344
  // Exclude do/benchmark when benchmarking is not selected
345
345
  if (!answers.includeBenchmark) {
346
346
  ignorePatterns.push('**/do/benchmark');
347
+ ignorePatterns.push('**/do/.benchmark_writer.py');
347
348
  ignorePatterns.push('**/do/optimize');
348
349
  }
349
350
 
350
- // Exclude do/adapter and do/adapters/ when LoRA is not enabled
351
+ // Exclude do/adapter, do/adapters/, and adapter sidecar when LoRA is not enabled
351
352
  if (!answers.enableLora) {
352
353
  ignorePatterns.push('**/do/adapter');
353
354
  ignorePatterns.push('**/do/adapters/**');
355
+ ignorePatterns.push('**/code/adapter_sidecar.py');
354
356
  }
355
357
 
356
358
  // Exclude tune files when framework is NOT transformers OR deploymentTarget is batch-transform