@aws/nx-plugin 1.3.2 → 1.3.4

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 (48) hide show
  1. package/LICENSE-THIRD-PARTY +21421 -10904
  2. package/migrations.json +12 -12
  3. package/package.json +4 -4
  4. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
  5. package/src/greengrass/component/python/__snapshots__/generator.spec.ts.snap +2 -2
  6. package/src/infra/app/__snapshots__/generator.spec.ts.snap +3 -3
  7. package/src/migrations/v1.0.15/0001-py-agent-pillow-override/migration.d.ts +5 -5
  8. package/src/migrations/v1.0.15/0001-py-agent-pillow-override/migration.js +75 -3
  9. package/src/migrations/v1.0.15/0001-py-agent-pillow-override/migration.js.map +1 -1
  10. package/src/migrations/v1.3.1/0001-biome-markdown-yaml-formatter-off/migration.js.map +1 -0
  11. package/src/migrations/v1.3.2/0001-py-agentcore-launcher/migration.js.map +1 -0
  12. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -2
  13. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +6 -6
  14. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +7 -7
  15. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +4 -4
  16. package/src/py/agent/guardrails/__snapshots__/generator.spec.ts.snap +6 -6
  17. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  18. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
  19. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  20. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  21. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +3 -3
  22. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +7 -7
  23. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -8
  24. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
  25. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -4
  26. package/src/ts/agent/guardrails/__snapshots__/generator.spec.ts.snap +3 -3
  27. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
  28. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  29. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  30. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  31. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
  32. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +14 -14
  33. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
  34. package/src/utils/docker.d.ts +1 -1
  35. package/src/utils/py.d.ts +0 -10
  36. package/src/utils/py.js +2 -59
  37. package/src/utils/py.js.map +1 -1
  38. package/src/utils/versions.d.ts +63 -71
  39. package/src/utils/versions.js +61 -74
  40. package/src/utils/versions.js.map +1 -1
  41. package/src/migrations/latest/biome-markdown-yaml-formatter-off/migration.js.map +0 -1
  42. package/src/migrations/latest/py-agentcore-launcher/migration.js.map +0 -1
  43. /package/src/migrations/{latest/biome-markdown-yaml-formatter-off → v1.3.1/0001-biome-markdown-yaml-formatter-off}/metadata.json +0 -0
  44. /package/src/migrations/{latest/biome-markdown-yaml-formatter-off → v1.3.1/0001-biome-markdown-yaml-formatter-off}/migration.d.ts +0 -0
  45. /package/src/migrations/{latest/biome-markdown-yaml-formatter-off → v1.3.1/0001-biome-markdown-yaml-formatter-off}/migration.js +0 -0
  46. /package/src/migrations/{latest/py-agentcore-launcher → v1.3.2/0001-py-agentcore-launcher}/metadata.json +0 -0
  47. /package/src/migrations/{latest/py-agentcore-launcher → v1.3.2/0001-py-agentcore-launcher}/migration.d.ts +0 -0
  48. /package/src/migrations/{latest/py-agentcore-launcher → v1.3.2/0001-py-agentcore-launcher}/migration.js +0 -0
package/src/utils/py.js CHANGED
@@ -5,8 +5,8 @@
5
5
  import { joinPathFragments } from "@nx/devkit";
6
6
  import { parsePipRequirementsLine } from "pip-requirements-js";
7
7
  import { normalizeDistributionName } from "./names.js";
8
- import { readToml, tryReadToml, updateToml } from "./toml.js";
9
- import { PY_UV_OVERRIDES, PY_VERSIONS, withPyVersions } from "./versions.js";
8
+ import { readToml, updateToml } from "./toml.js";
9
+ import { PY_VERSIONS, withPyVersions } from "./versions.js";
10
10
  // Dedup key that distinguishes bare packages from the same package with
11
11
  // extras (e.g. `foo` vs `foo[bar]`), so adding a bare dep doesn't drop a
12
12
  // previously-added variant with extras.
@@ -43,63 +43,6 @@ const mergeDeps = (declaration, existing, deps)=>{
43
43
  const projectToml = parse(tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'));
44
44
  projectToml.project.dependencies = mergeDeps(declaration, projectToml.project?.dependencies, deps);
45
45
  tree.write(joinPathFragments(projectRoot, 'pyproject.toml'), stringify(projectToml));
46
- addUvOverrideDependencies(tree, projectToml.project.dependencies);
47
- };
48
- // PEP 503 name of a requirement, or undefined for one that names no package or
49
- // cannot be parsed.
50
- const requirementName = (requirement)=>{
51
- if (typeof requirement !== 'string') {
52
- return undefined;
53
- }
54
- try {
55
- const parsed = parsePipRequirementsLine(requirement);
56
- return parsed?.type === 'ProjectName' || parsed?.type === 'ProjectURL' ? normalizeDistributionName(parsed.name) : undefined;
57
- } catch {
58
- return undefined;
59
- }
60
- };
61
- /**
62
- * Add the `PY_UV_OVERRIDES` entries for the packages named in `requirements`
63
- * to the workspace root `[tool.uv] override-dependencies`, which is the only
64
- * place uv reads overrides from.
65
- *
66
- * Existing entries keep their order, and a package the list already overrides
67
- * is left as the user wrote it. The root file is written only when an entry is
68
- * added. Returns whether it was.
69
- */ export const addUvOverrideDependencies = (tree, requirements)=>{
70
- const rootPyprojectPath = 'pyproject.toml';
71
- const toml = tryReadToml(tree, rootPyprojectPath);
72
- if (!toml) {
73
- return false;
74
- }
75
- const names = new Set(requirements.map(requirementName));
76
- const overrides = Object.entries(PY_UV_OVERRIDES).flatMap(([dependency, entries])=>names.has(normalizeDistributionName(dependency)) ? entries : []);
77
- if (overrides.length === 0) {
78
- return false;
79
- }
80
- const existing = toml.tool?.uv?.['override-dependencies'];
81
- if (existing !== undefined && !Array.isArray(existing)) {
82
- return false;
83
- }
84
- const merged = [
85
- ...existing ?? []
86
- ];
87
- const overridden = new Set(merged.map(requirementName));
88
- for (const entry of overrides){
89
- const name = requirementName(entry);
90
- if (!overridden.has(name)) {
91
- merged.push(entry);
92
- overridden.add(name);
93
- }
94
- }
95
- if (merged.length === (existing ?? []).length) {
96
- return false;
97
- }
98
- toml.tool ??= {};
99
- toml.tool.uv ??= {};
100
- toml.tool.uv['override-dependencies'] = merged;
101
- tree.write(rootPyprojectPath, stringify(toml));
102
- return true;
103
46
  };
104
47
  export const addDependenciesToDependencyGroupInPyProjectToml = (tree, projectRoot, group, declaration, deps)=>{
105
48
  const projectToml = parse(tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type JsonMap, parse, stringify } from '@iarna/toml';\nimport { joinPathFragments, type Tree } from '@nx/devkit';\nimport { parsePipRequirementsLine } from 'pip-requirements-js';\nimport type {\n DeclaredPy,\n DependencyDeclaration,\n} from './declared-dependencies.js';\nimport { normalizeDistributionName } from './names.js';\nimport type { UVPyprojectToml } from './nxlv-python.js';\nimport { readToml, tryReadToml, updateToml } from './toml.js';\nimport {\n type IPyDepVersion,\n PY_UV_OVERRIDES,\n PY_VERSIONS,\n withPyVersions,\n} from './versions.js';\n\n// Dedup key that distinguishes bare packages from the same package with\n// extras (e.g. `foo` vs `foo[bar]`), so adding a bare dep doesn't drop a\n// previously-added variant with extras.\nconst depKey = (dep: string): string => {\n const parsed = parsePipRequirementsLine(dep);\n if (parsed?.type !== 'ProjectName') {\n return dep;\n }\n const extras = [...(parsed.extras ?? [])].sort().join(',');\n return extras ? `${parsed.name}[${extras}]` : parsed.name;\n};\n\nconst mergeDeps = (\n declaration: DependencyDeclaration,\n existing: readonly string[] | undefined,\n deps: readonly IPyDepVersion[],\n): string[] => {\n // Update deps in place by key so re-running does not reorder the list:\n // existing deps keep their position (with their version refreshed), and only\n // genuinely-new deps are appended.\n const incoming = new Map(\n withPyVersions(declaration, deps).map((d) => [depKey(d), d]),\n );\n const merged = (existing ?? []).map(\n (dep) => incoming.get(depKey(dep)) ?? dep,\n );\n const existingKeys = new Set((existing ?? []).map(depKey));\n for (const [key, dep] of incoming) {\n if (!existingKeys.has(key)) {\n merged.push(dep);\n }\n }\n return merged;\n};\n\n/**\n * Add dependencies to a pyproject.toml file\n */\nexport const addDependenciesToPyProjectToml = <\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n projectRoot: string,\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n) => {\n const projectToml = parse(\n tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'),\n ) as UVPyprojectToml;\n projectToml.project.dependencies = mergeDeps(\n declaration,\n projectToml.project?.dependencies,\n deps,\n );\n tree.write(\n joinPathFragments(projectRoot, 'pyproject.toml'),\n stringify(projectToml),\n );\n addUvOverrideDependencies(tree, projectToml.project.dependencies);\n};\n\n// PEP 503 name of a requirement, or undefined for one that names no package or\n// cannot be parsed.\nconst requirementName = (requirement: unknown): string | undefined => {\n if (typeof requirement !== 'string') {\n return undefined;\n }\n try {\n const parsed = parsePipRequirementsLine(requirement);\n return parsed?.type === 'ProjectName' || parsed?.type === 'ProjectURL'\n ? normalizeDistributionName(parsed.name)\n : undefined;\n } catch {\n return undefined;\n }\n};\n\n/**\n * Add the `PY_UV_OVERRIDES` entries for the packages named in `requirements`\n * to the workspace root `[tool.uv] override-dependencies`, which is the only\n * place uv reads overrides from.\n *\n * Existing entries keep their order, and a package the list already overrides\n * is left as the user wrote it. The root file is written only when an entry is\n * added. Returns whether it was.\n */\nexport const addUvOverrideDependencies = (\n tree: Tree,\n requirements: readonly string[],\n): boolean => {\n const rootPyprojectPath = 'pyproject.toml';\n const toml = tryReadToml(tree, rootPyprojectPath) as\n | UVPyprojectToml\n | undefined;\n if (!toml) {\n return false;\n }\n const names = new Set(requirements.map(requirementName));\n const overrides = Object.entries(PY_UV_OVERRIDES).flatMap(\n ([dependency, entries]) =>\n names.has(normalizeDistributionName(dependency)) ? entries : [],\n );\n if (overrides.length === 0) {\n return false;\n }\n\n const existing = toml.tool?.uv?.['override-dependencies'];\n if (existing !== undefined && !Array.isArray(existing)) {\n return false;\n }\n const merged = [...(existing ?? [])];\n const overridden = new Set(merged.map(requirementName));\n for (const entry of overrides) {\n const name = requirementName(entry);\n if (!overridden.has(name)) {\n merged.push(entry);\n overridden.add(name);\n }\n }\n if (merged.length === (existing ?? []).length) {\n return false;\n }\n\n toml.tool ??= {};\n toml.tool.uv ??= {};\n toml.tool.uv['override-dependencies'] = merged;\n tree.write(rootPyprojectPath, stringify(toml as JsonMap));\n return true;\n};\n\nexport const addDependenciesToDependencyGroupInPyProjectToml = <\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n projectRoot: string,\n group: string,\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n) => {\n const projectToml = parse(\n tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'),\n ) as UVPyprojectToml;\n projectToml['dependency-groups'] = {\n ...projectToml['dependency-groups'],\n [group]: mergeDeps(\n declaration,\n projectToml['dependency-groups']?.[group],\n deps,\n ),\n };\n tree.write(\n joinPathFragments(projectRoot, 'pyproject.toml'),\n stringify(projectToml),\n );\n};\n\nexport interface UvxWithDep {\n dep: string;\n version: string;\n specifier?: string;\n}\n\n/**\n * Render a uvx command for a given dependency\n * Pins the version to the one specified in versions.ts\n * Optionally specify withDeps to render uvx --with dep==version\n */\nexport const uvxCommand = (\n dep: IPyDepVersion,\n args?: string,\n withDeps?: UvxWithDep[],\n): string => {\n // Pins the tool for a one-off invocation; nothing is added to a manifest, so\n // this needs no declaration.\n return `uvx --from ${dep}${PY_VERSIONS[dep]} ${\n withDeps\n ? `${withDeps\n .map(\n ({ dep, version, specifier }) =>\n `--with ${dep}${specifier ?? '=='}${version}`,\n )\n .join(' ')} `\n : ''\n }${dep}${args ? ` ${args}` : ''}`;\n};\n\n/**\n * Resolve the PEP 503 distribution name of a Python project from its\n * `pyproject.toml` `[project].name`, falling back to normalising the supplied\n * Nx project id when the project has no readable pyproject yet.\n *\n * This is the authoritative name uv writes into `uv.lock`, so it is the value\n * that must appear in a dependent's `[project].dependencies` /\n * `[tool.uv.sources]` for `@nxlv/python` to infer the workspace dependency\n * edge. Always normalised so the result is a valid distribution name even if\n * an older project still carries a dotted `[project].name`.\n */\nconst getPyDistributionName = (\n tree: Tree,\n project: { name?: string; root: string },\n): string => {\n const pyprojectPath = joinPathFragments(project.root, 'pyproject.toml');\n const projectName = tree.exists(pyprojectPath)\n ? (readToml(tree, pyprojectPath) as unknown as UVPyprojectToml).project\n ?.name\n : undefined;\n return normalizeDistributionName(projectName ?? project.name ?? '');\n};\n\n/**\n * Add a workspace dependency from one Python project to another.\n * Adds the dependency to [project].dependencies and [tool.uv.sources].\n *\n * Both projects are passed as Nx project configurations (not names): the\n * dependency's PEP 503 distribution name is derived from its own\n * `pyproject.toml` here, so callers cannot accidentally pass the dotted Nx id\n * (which @nxlv/python splits on `.` and drops, losing the project-graph edge).\n * This is the single entry point all generators use to wire a Python workspace\n * dependency.\n */\nexport const addWorkspaceDependencyToPyProject = (\n tree: Tree,\n dependentProject: { name?: string; root: string },\n dependencyProject: { name?: string; root: string },\n): void => {\n const pyprojectPath = joinPathFragments(\n dependentProject.root,\n 'pyproject.toml',\n );\n if (!tree.exists(pyprojectPath)) {\n return;\n }\n\n const distributionName = getPyDistributionName(tree, dependencyProject);\n\n updateToml(tree, pyprojectPath, (toml: UVPyprojectToml) => {\n // Add to [project].dependencies if not already present\n const deps = toml.project?.dependencies ?? [];\n if (\n !deps.some(\n (d) =>\n d === distributionName ||\n d.startsWith(`${distributionName}>=`) ||\n d.startsWith(`${distributionName}==`),\n )\n ) {\n toml.project.dependencies = [...deps, distributionName];\n }\n\n // Add to [tool.uv.sources] with workspace = true\n toml.tool = toml.tool ?? {};\n (toml.tool as any).uv = (toml.tool as any).uv ?? {};\n (toml.tool as any).uv.sources = (toml.tool as any).uv.sources ?? {};\n (toml.tool as any).uv.sources[distributionName] = {\n workspace: true,\n };\n\n return toml;\n });\n};\n"],"names":["parse","stringify","joinPathFragments","parsePipRequirementsLine","normalizeDistributionName","readToml","tryReadToml","updateToml","PY_UV_OVERRIDES","PY_VERSIONS","withPyVersions","depKey","dep","parsed","type","extras","sort","join","name","mergeDeps","declaration","existing","deps","incoming","Map","map","d","merged","get","existingKeys","Set","key","has","push","addDependenciesToPyProjectToml","tree","projectRoot","projectToml","read","project","dependencies","write","addUvOverrideDependencies","requirementName","requirement","undefined","requirements","rootPyprojectPath","toml","names","overrides","Object","entries","flatMap","dependency","length","tool","uv","Array","isArray","overridden","entry","add","addDependenciesToDependencyGroupInPyProjectToml","group","uvxCommand","args","withDeps","version","specifier","getPyDistributionName","pyprojectPath","root","projectName","exists","addWorkspaceDependencyToPyProject","dependentProject","dependencyProject","distributionName","some","startsWith","sources","workspace"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { parse, stringify } from '@iarna/toml';\nimport { joinPathFragments, type Tree } from '@nx/devkit';\nimport { parsePipRequirementsLine } from 'pip-requirements-js';\nimport type {\n DeclaredPy,\n DependencyDeclaration,\n} from './declared-dependencies.js';\nimport { normalizeDistributionName } from './names.js';\nimport type { UVPyprojectToml } from './nxlv-python.js';\nimport { readToml, updateToml } from './toml.js';\nimport { type IPyDepVersion, PY_VERSIONS, withPyVersions } from './versions.js';\n\n// Dedup key that distinguishes bare packages from the same package with\n// extras (e.g. `foo` vs `foo[bar]`), so adding a bare dep doesn't drop a\n// previously-added variant with extras.\nconst depKey = (dep: string): string => {\n const parsed = parsePipRequirementsLine(dep);\n if (parsed?.type !== 'ProjectName') {\n return dep;\n }\n const extras = [...(parsed.extras ?? [])].sort().join(',');\n return extras ? `${parsed.name}[${extras}]` : parsed.name;\n};\n\nconst mergeDeps = (\n declaration: DependencyDeclaration,\n existing: readonly string[] | undefined,\n deps: readonly IPyDepVersion[],\n): string[] => {\n // Update deps in place by key so re-running does not reorder the list:\n // existing deps keep their position (with their version refreshed), and only\n // genuinely-new deps are appended.\n const incoming = new Map(\n withPyVersions(declaration, deps).map((d) => [depKey(d), d]),\n );\n const merged = (existing ?? []).map(\n (dep) => incoming.get(depKey(dep)) ?? dep,\n );\n const existingKeys = new Set((existing ?? []).map(depKey));\n for (const [key, dep] of incoming) {\n if (!existingKeys.has(key)) {\n merged.push(dep);\n }\n }\n return merged;\n};\n\n/**\n * Add dependencies to a pyproject.toml file\n */\nexport const addDependenciesToPyProjectToml = <\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n projectRoot: string,\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n) => {\n const projectToml = parse(\n tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'),\n ) as UVPyprojectToml;\n projectToml.project.dependencies = mergeDeps(\n declaration,\n projectToml.project?.dependencies,\n deps,\n );\n tree.write(\n joinPathFragments(projectRoot, 'pyproject.toml'),\n stringify(projectToml),\n );\n};\n\nexport const addDependenciesToDependencyGroupInPyProjectToml = <\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n projectRoot: string,\n group: string,\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n) => {\n const projectToml = parse(\n tree.read(joinPathFragments(projectRoot, 'pyproject.toml'), 'utf8'),\n ) as UVPyprojectToml;\n projectToml['dependency-groups'] = {\n ...projectToml['dependency-groups'],\n [group]: mergeDeps(\n declaration,\n projectToml['dependency-groups']?.[group],\n deps,\n ),\n };\n tree.write(\n joinPathFragments(projectRoot, 'pyproject.toml'),\n stringify(projectToml),\n );\n};\n\nexport interface UvxWithDep {\n dep: string;\n version: string;\n specifier?: string;\n}\n\n/**\n * Render a uvx command for a given dependency\n * Pins the version to the one specified in versions.ts\n * Optionally specify withDeps to render uvx --with dep==version\n */\nexport const uvxCommand = (\n dep: IPyDepVersion,\n args?: string,\n withDeps?: UvxWithDep[],\n): string => {\n // Pins the tool for a one-off invocation; nothing is added to a manifest, so\n // this needs no declaration.\n return `uvx --from ${dep}${PY_VERSIONS[dep]} ${\n withDeps\n ? `${withDeps\n .map(\n ({ dep, version, specifier }) =>\n `--with ${dep}${specifier ?? '=='}${version}`,\n )\n .join(' ')} `\n : ''\n }${dep}${args ? ` ${args}` : ''}`;\n};\n\n/**\n * Resolve the PEP 503 distribution name of a Python project from its\n * `pyproject.toml` `[project].name`, falling back to normalising the supplied\n * Nx project id when the project has no readable pyproject yet.\n *\n * This is the authoritative name uv writes into `uv.lock`, so it is the value\n * that must appear in a dependent's `[project].dependencies` /\n * `[tool.uv.sources]` for `@nxlv/python` to infer the workspace dependency\n * edge. Always normalised so the result is a valid distribution name even if\n * an older project still carries a dotted `[project].name`.\n */\nconst getPyDistributionName = (\n tree: Tree,\n project: { name?: string; root: string },\n): string => {\n const pyprojectPath = joinPathFragments(project.root, 'pyproject.toml');\n const projectName = tree.exists(pyprojectPath)\n ? (readToml(tree, pyprojectPath) as unknown as UVPyprojectToml).project\n ?.name\n : undefined;\n return normalizeDistributionName(projectName ?? project.name ?? '');\n};\n\n/**\n * Add a workspace dependency from one Python project to another.\n * Adds the dependency to [project].dependencies and [tool.uv.sources].\n *\n * Both projects are passed as Nx project configurations (not names): the\n * dependency's PEP 503 distribution name is derived from its own\n * `pyproject.toml` here, so callers cannot accidentally pass the dotted Nx id\n * (which @nxlv/python splits on `.` and drops, losing the project-graph edge).\n * This is the single entry point all generators use to wire a Python workspace\n * dependency.\n */\nexport const addWorkspaceDependencyToPyProject = (\n tree: Tree,\n dependentProject: { name?: string; root: string },\n dependencyProject: { name?: string; root: string },\n): void => {\n const pyprojectPath = joinPathFragments(\n dependentProject.root,\n 'pyproject.toml',\n );\n if (!tree.exists(pyprojectPath)) {\n return;\n }\n\n const distributionName = getPyDistributionName(tree, dependencyProject);\n\n updateToml(tree, pyprojectPath, (toml: UVPyprojectToml) => {\n // Add to [project].dependencies if not already present\n const deps = toml.project?.dependencies ?? [];\n if (\n !deps.some(\n (d) =>\n d === distributionName ||\n d.startsWith(`${distributionName}>=`) ||\n d.startsWith(`${distributionName}==`),\n )\n ) {\n toml.project.dependencies = [...deps, distributionName];\n }\n\n // Add to [tool.uv.sources] with workspace = true\n toml.tool = toml.tool ?? {};\n (toml.tool as any).uv = (toml.tool as any).uv ?? {};\n (toml.tool as any).uv.sources = (toml.tool as any).uv.sources ?? {};\n (toml.tool as any).uv.sources[distributionName] = {\n workspace: true,\n };\n\n return toml;\n });\n};\n"],"names":["parse","stringify","joinPathFragments","parsePipRequirementsLine","normalizeDistributionName","readToml","updateToml","PY_VERSIONS","withPyVersions","depKey","dep","parsed","type","extras","sort","join","name","mergeDeps","declaration","existing","deps","incoming","Map","map","d","merged","get","existingKeys","Set","key","has","push","addDependenciesToPyProjectToml","tree","projectRoot","projectToml","read","project","dependencies","write","addDependenciesToDependencyGroupInPyProjectToml","group","uvxCommand","args","withDeps","version","specifier","getPyDistributionName","pyprojectPath","root","projectName","exists","undefined","addWorkspaceDependencyToPyProject","dependentProject","dependencyProject","distributionName","toml","some","startsWith","tool","uv","sources","workspace"],"mappings":"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"}
@@ -10,30 +10,30 @@ export declare const TS_VERSIONS: {
10
10
  readonly '@a2a-js/sdk': "0.3.14";
11
11
  readonly '@aws/aws-distro-opentelemetry-node-autoinstrumentation': "0.13.0";
12
12
  readonly '@opentelemetry/propagator-jaeger': "2.12.0";
13
- readonly minimatch: "10.2.6";
13
+ readonly minimatch: "11.0.1";
14
14
  readonly 'deepmerge-ts': "8.0.2";
15
15
  readonly mysql2: "3.24.6";
16
- readonly '@aws-sdk/client-dynamodb': "3.1156.0";
17
- readonly '@aws-sdk/client-api-gateway': "3.1156.0";
18
- readonly '@aws-sdk/client-iam': "3.1156.0";
19
- readonly '@aws-sdk/client-bedrock-agentcore': "3.1156.0";
20
- readonly '@aws-sdk/client-bedrock-runtime': "3.1156.0";
21
- readonly '@aws-sdk/client-greengrassv2': "3.1156.0";
22
- readonly '@aws-sdk/client-s3': "3.1156.0";
23
- readonly '@aws-sdk/client-sts': "3.1156.0";
24
- readonly '@aws-sdk/client-cognito-identity-provider': "3.1156.0";
25
- readonly '@aws-sdk/credential-providers': "3.1156.0";
26
- readonly '@aws-sdk/credential-provider-cognito-identity': "3.972.75";
27
- readonly '@aws-sdk/client-secrets-manager': "3.1156.0";
28
- readonly '@aws-sdk/rds-signer': "3.1156.0";
29
- readonly '@smithy/server-apigateway': "0.3.4";
30
- readonly '@smithy/server-node': "0.3.4";
16
+ readonly '@aws-sdk/client-dynamodb': "3.1161.0";
17
+ readonly '@aws-sdk/client-api-gateway': "3.1161.0";
18
+ readonly '@aws-sdk/client-iam': "3.1161.0";
19
+ readonly '@aws-sdk/client-bedrock-agentcore': "3.1161.0";
20
+ readonly '@aws-sdk/client-bedrock-runtime': "3.1161.0";
21
+ readonly '@aws-sdk/client-greengrassv2': "3.1161.0";
22
+ readonly '@aws-sdk/client-s3': "3.1161.0";
23
+ readonly '@aws-sdk/client-sts': "3.1161.0";
24
+ readonly '@aws-sdk/client-cognito-identity-provider': "3.1161.0";
25
+ readonly '@aws-sdk/credential-providers': "3.1161.0";
26
+ readonly '@aws-sdk/credential-provider-cognito-identity': "3.972.79";
27
+ readonly '@aws-sdk/client-secrets-manager': "3.1161.0";
28
+ readonly '@aws-sdk/rds-signer': "3.1161.0";
29
+ readonly '@smithy/server-apigateway': "0.3.5";
30
+ readonly '@smithy/server-node': "0.3.5";
31
31
  readonly '@aws-lambda-powertools/logger': "2.36.0";
32
32
  readonly '@aws-lambda-powertools/metrics': "2.36.0";
33
33
  readonly '@aws-lambda-powertools/parameters': "2.36.0";
34
34
  readonly '@aws-lambda-powertools/tracer': "2.36.0";
35
35
  readonly '@aws-lambda-powertools/parser': "2.36.0";
36
- readonly '@aws-sdk/client-appconfigdata': "3.1156.0";
36
+ readonly '@aws-sdk/client-appconfigdata': "3.1161.0";
37
37
  readonly '@middy/core': "7.9.2";
38
38
  readonly '@nxlv/python': "23.3.1";
39
39
  readonly '@nx-extend/terraform': "10.4.1";
@@ -46,34 +46,34 @@ export declare const TS_VERSIONS: {
46
46
  readonly '@nx/workspace': "23.3.1";
47
47
  readonly 'create-nx-workspace': "23.3.1";
48
48
  readonly '@swc-node/register': "1.12.1";
49
- readonly '@swc/core': "1.16.20";
49
+ readonly '@swc/core': "1.16.21";
50
50
  readonly '@modelcontextprotocol/sdk': "1.32.2";
51
51
  readonly '@modelcontextprotocol/client': "2.4.0";
52
- readonly '@modelcontextprotocol/inspector': "2.12.0";
52
+ readonly '@modelcontextprotocol/inspector': "2.13.0";
53
53
  readonly '@ag-ui/a2ui-toolkit': "0.0.5";
54
54
  readonly '@ag-ui/aws-strands': "1.0.1";
55
55
  readonly '@ag-ui/client': "1.0.2";
56
56
  readonly '@ag-ui/core': "1.0.2";
57
57
  readonly '@ag-ui/encoder': "1.0.2";
58
58
  readonly 'agent-chat-cli': "0.3.0";
59
- readonly '@copilotkit/react-core': "1.79.1";
59
+ readonly '@copilotkit/react-core': "1.83.0";
60
60
  readonly rxjs: "7.8.2";
61
- readonly '@strands-agents/sdk': "1.22.0";
61
+ readonly '@strands-agents/sdk': "1.23.0";
62
62
  readonly '@tanstack/react-router': "1.170.46";
63
63
  readonly '@tanstack/router-plugin': "1.168.48";
64
64
  readonly '@tanstack/router-generator': "1.167.46";
65
65
  readonly '@tanstack/virtual-file-routes': "1.162.0";
66
66
  readonly '@tanstack/router-utils': "1.162.4";
67
- readonly '@cloudscape-design/board-components': "3.0.240";
68
- readonly '@cloudscape-design/chat-components': "1.0.182";
69
- readonly '@cloudscape-design/components': "3.0.1404";
67
+ readonly '@cloudscape-design/board-components': "3.0.243";
68
+ readonly '@cloudscape-design/chat-components': "1.0.185";
69
+ readonly '@cloudscape-design/components': "3.0.1407";
70
70
  readonly '@cloudscape-design/global-styles': "1.0.71";
71
- readonly '@tanstack/react-query': "5.104.5";
72
- readonly '@tanstack/react-query-devtools': "5.104.5";
73
- readonly '@trpc/tanstack-react-query': "11.19.0";
74
- readonly '@trpc/client': "11.19.0";
75
- readonly '@trpc/server': "11.19.0";
76
- readonly '@types/node': "26.6.5";
71
+ readonly '@tanstack/react-query': "5.105.0";
72
+ readonly '@tanstack/react-query-devtools': "5.105.0";
73
+ readonly '@trpc/tanstack-react-query': "11.22.1";
74
+ readonly '@trpc/client': "11.22.1";
75
+ readonly '@trpc/server': "11.22.1";
76
+ readonly '@types/node': "26.6.6";
77
77
  readonly '@types/aws-lambda': "8.10.164";
78
78
  readonly '@types/cors': "2.8.19";
79
79
  readonly '@types/js-yaml': "4.0.9";
@@ -82,30 +82,30 @@ export declare const TS_VERSIONS: {
82
82
  readonly '@types/express': "5.0.6";
83
83
  readonly '@smithy/config-resolver': "4.7.2";
84
84
  readonly '@smithy/node-config-provider': "4.6.2";
85
- readonly '@smithy/node-http-handler': "4.12.1";
85
+ readonly '@smithy/node-http-handler': "4.14.1";
86
86
  readonly '@smithy/types': "4.19.0";
87
87
  readonly '@vitest/coverage-v8': "5.0.5";
88
88
  readonly '@vitest/ui': "5.0.5";
89
89
  readonly '@astrojs/react': "6.0.6";
90
- readonly '@astrojs/starlight': "0.42.7";
91
- readonly astro: "7.4.2";
90
+ readonly '@astrojs/starlight': "0.42.8";
91
+ readonly astro: "7.4.4";
92
92
  readonly cookie: "2.0.1";
93
93
  readonly aws4fetch: "1.0.20";
94
- readonly 'aws-cdk': "2.1146.1";
95
- readonly 'aws-cdk-lib': "2.274.0";
94
+ readonly 'aws-cdk': "2.1147.0";
95
+ readonly 'aws-cdk-lib': "2.275.0";
96
96
  readonly 'aws-iot-device-sdk-v2': "1.28.2";
97
97
  readonly 'aws-xray-sdk-core': "3.12.0";
98
98
  readonly constructs: "10.8.1";
99
99
  readonly cors: "2.8.6";
100
100
  readonly chalk: "6.0.1";
101
101
  readonly 'class-variance-authority': "0.7.1";
102
- readonly cn: "0.5.0";
102
+ readonly cn: "0.5.1";
103
103
  readonly commander: "15.0.0";
104
104
  readonly electrodb: "3.9.3";
105
105
  readonly esbuild: "0.28.2";
106
106
  readonly 'event-source-polyfill': "1.0.31";
107
107
  readonly '@types/event-source-polyfill': "1.0.5";
108
- readonly '@biomejs/biome': "2.6.3";
108
+ readonly '@biomejs/biome': "2.6.4";
109
109
  readonly '@prisma/adapter-mariadb': "7.10.1";
110
110
  readonly '@prisma/adapter-pg': "7.10.1";
111
111
  readonly '@prisma/client': "7.10.1";
@@ -118,7 +118,7 @@ export declare const TS_VERSIONS: {
118
118
  readonly '@types/fs-extra': "11.0.4";
119
119
  readonly 'js-yaml': "4.3.2";
120
120
  readonly mariadb: "3.5.4";
121
- readonly mise: "2026.10.19";
121
+ readonly mise: "2026.10.25";
122
122
  readonly npm: "12.2.1";
123
123
  readonly 'npm-check-updates': "23.1.1";
124
124
  readonly 'oidc-client-ts': "3.5.0";
@@ -127,8 +127,8 @@ export declare const TS_VERSIONS: {
127
127
  readonly 'react-oidc-context': "3.3.1";
128
128
  readonly react: "19.3.1";
129
129
  readonly 'react-dom': "19.3.1";
130
- readonly rolldown: "1.2.15";
131
- readonly 'rolldown-plugin-dts': "0.28.8";
130
+ readonly rolldown: "1.2.16";
131
+ readonly 'rolldown-plugin-dts': "0.29.0";
132
132
  readonly shx: "0.4.0";
133
133
  readonly 'simple-git': "4.0.2";
134
134
  readonly 'source-map-support': "0.5.21";
@@ -136,16 +136,16 @@ export declare const TS_VERSIONS: {
136
136
  readonly tailwindcss: "4.3.3";
137
137
  readonly '@tailwindcss/vite': "4.3.3";
138
138
  readonly tsx: "4.23.15";
139
- readonly 'lucide-react': "1.61.0";
139
+ readonly 'lucide-react': "1.66.0";
140
140
  readonly 'radix-ui': "1.8.1";
141
- readonly shadcn: "4.22.1";
141
+ readonly shadcn: "4.23.0";
142
142
  readonly 'tw-animate-css': "1.4.0";
143
143
  readonly vite: "8.3.5";
144
144
  readonly typescript: "6.0.3";
145
145
  readonly vitest: "5.0.5";
146
146
  readonly jsdom: "29.1.1";
147
147
  readonly zod: "4.6.7";
148
- readonly ws: "8.22.0";
148
+ readonly ws: "8.22.1";
149
149
  };
150
150
  export type ITsDepVersion = keyof typeof TS_VERSIONS;
151
151
  /**
@@ -200,31 +200,31 @@ export declare const PY_VERSIONS: {
200
200
  readonly 'ag-ui-protocol': "==0.1.22";
201
201
  readonly 'ag-ui-strands': "==0.4.1";
202
202
  readonly aiosqlite: "==0.22.1";
203
- readonly 'aws-lambda-powertools': "==3.37.0";
204
- readonly 'aws-lambda-powertools[tracer]': "==3.37.0";
205
- readonly 'aws-lambda-powertools[parser]': "==3.37.0";
206
- readonly 'aws-opentelemetry-distro': "==0.21.0";
203
+ readonly 'aws-lambda-powertools': "==3.38.0";
204
+ readonly 'aws-lambda-powertools[tracer]': "==3.38.0";
205
+ readonly 'aws-lambda-powertools[parser]': "==3.38.0";
206
+ readonly 'aws-opentelemetry-distro': "==0.22.0";
207
207
  readonly awsiotsdk: "==1.31.0";
208
- readonly 'bedrock-agentcore': "==1.25.0";
209
- readonly boto3: "==1.43.118";
210
- readonly checkov: "==3.3.30";
208
+ readonly 'bedrock-agentcore': "==1.25.2";
209
+ readonly boto3: "==1.43.123";
210
+ readonly checkov: "==3.4.0";
211
211
  readonly fastapi: "==0.162.0";
212
212
  readonly 'fastapi[standard]': "==0.162.0";
213
213
  readonly httpx: "==0.28.1";
214
214
  readonly langchain: "==1.4.7";
215
- readonly 'langchain-aws': "==1.9.0";
215
+ readonly 'langchain-aws': "==1.9.1";
216
216
  readonly 'langchain-mcp-adapters': "==0.3.2";
217
- readonly langgraph: "==1.2.17";
217
+ readonly langgraph: "==1.2.19";
218
218
  readonly 'langgraph-checkpoint-aws': "==1.2.6";
219
- readonly 'langgraph-checkpoint-sqlite': "==3.1.2";
219
+ readonly 'langgraph-checkpoint-sqlite': "==3.1.3";
220
220
  readonly mcp: "==1.28.1";
221
221
  readonly 'pip-check-updates': "==0.29.0";
222
222
  readonly 'pip-licenses': "==5.5.5";
223
- readonly pydantic: "==2.14.1";
224
- readonly ruff: "==0.17.2";
225
- readonly 'strands-agents': "==1.62.0";
226
- readonly 'strands-agents[a2a]': "==1.62.0";
227
- readonly 'strands-agents-tools': "==0.8.10";
223
+ readonly pydantic: "==2.14.2";
224
+ readonly ruff: "==0.17.3";
225
+ readonly 'strands-agents': "==1.63.0";
226
+ readonly 'strands-agents[a2a]': "==1.63.0";
227
+ readonly 'strands-agents-tools': "==0.8.11";
228
228
  readonly ty: "==0.0.89";
229
229
  readonly pynamodb: "==6.1.0";
230
230
  readonly uvicorn: "==0.54.0";
@@ -235,14 +235,6 @@ export declare const PY_VERSIONS: {
235
235
  readonly greenlet: "==3.5.6";
236
236
  };
237
237
  export type IPyDepVersion = keyof typeof PY_VERSIONS;
238
- /**
239
- * Entries for the workspace root `[tool.uv] override-dependencies`, keyed by
240
- * the vended package whose own requirement they override. They are written
241
- * whenever a project depends on the key.
242
- */
243
- export declare const PY_UV_OVERRIDES: {
244
- readonly 'strands-agents-tools': readonly ["pillow>=13.0.0"];
245
- };
246
238
  /**
247
239
  * Add versions to the given dependencies
248
240
  */
@@ -264,7 +256,7 @@ export declare const JAVA_VERSIONS: {
264
256
  readonly 'software.amazon.smithy:smithy-aws-traits': "1.74.1";
265
257
  readonly 'software.amazon.smithy:smithy-validation-model': "1.74.1";
266
258
  readonly 'software.amazon.smithy:smithy-openapi': "1.74.1";
267
- readonly 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': "0.54.0";
259
+ readonly 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': "0.55.0";
268
260
  };
269
261
  export type IJavaVersion = keyof typeof JAVA_VERSIONS;
270
262
  /** The Maven coordinates the version update resolves, in declaration order. */
@@ -392,8 +384,8 @@ export declare const terraformLambdaRuntimeVars: () => {
392
384
  * Pinned exactly (no range operator) so generated infrastructure is reproducible.
393
385
  */
394
386
  export declare const TERRAFORM_VERSIONS: {
395
- readonly aws: "6.70.0";
396
- readonly awscc: "1.107.0";
387
+ readonly aws: "6.71.0";
388
+ readonly awscc: "1.108.0";
397
389
  readonly random: "3.9.1";
398
390
  readonly null: "3.3.2";
399
391
  readonly archive: "2.8.1";
@@ -407,8 +399,8 @@ export type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;
407
399
  * generated `.tf` templates (e.g. `version = "<%- awsProviderVersion %>"`)
408
400
  */
409
401
  export declare const terraformProviderVersions: () => {
410
- awsProviderVersion: "6.70.0";
411
- awsccProviderVersion: "1.107.0";
402
+ awsProviderVersion: "6.71.0";
403
+ awsccProviderVersion: "1.108.0";
412
404
  randomProviderVersion: "3.9.1";
413
405
  nullProviderVersion: "3.3.2";
414
406
  archiveProviderVersion: "2.8.1";